vs中如何配置連線mysql資料庫
vs連線資料庫其實就是將mysql資料庫.h標頭檔案介面、lib連結檔案和dll執行檔案加入到專案中。下面是配置如何加入。
轉於http://www.cnblogs.com/justinzhang/archive/2011/09/23/2185963.html
一、VS2013工程設定工作
首先,建立一個windows應用程式的工程,將C/C++->前處理器->前處理器定義下的_WINDOWS改為_CONSOLE,
將聯結器->系統->子系統 選擇為控制檯。
由於我們要使用Mysql的API,並且我們機子上肯定安裝了Mysql資料庫,所以我們要將工程的標頭檔案路徑指向Mysql安裝目錄的同文件mysql.h所在的位置,將連線庫路徑指向libmysql.lib所在的路徑,
在我的機子上,Mysql 的安裝路徑為:C:\Program Files\MySQL\MySQL Server 5.1
我們需要把VS2008的工程中的標頭檔案路徑和連線庫路徑指向上面的兩個地方:
將x專案屬性頁的C/C++->常規->附加包含目錄指向:C:\Program Files\MySQL\MySQL Server 5.1\include
將專案屬性頁的連結器->常規->附加庫目錄指向:C:\Program Files\MySQL\MySQL Server 5.1\lib\opt.
將連結器->輸入->附加依賴項中新增libmysql.lib。
如果不設定連結器->輸入->附加依賴項中新增libmysql.lib,那麼會出現如下的錯誤:
1>------ 已啟動全部重新生成: 專案: MySql-Connect, 配置: Debug Win32 ------
1>正在刪除專案“MySql-Connect”(配置“Debug|Win32”)的中間檔案和輸出檔案
1>正在編譯...
1>MySql_Connect.cpp
1>x:\程式設計練習\c-c++\c\mysql_connect.cpp(35) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using
scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(306) : 參見“scanf”的宣告
1>x:\程式設計練習\c-c++\c\mysql_connect.cpp(72) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 參見“sprintf”的宣告
1>x:\程式設計練習\c-c++\c\mysql_connect.cpp(86) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> d:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 參見“sprintf”的宣告
1>正在編譯資源清單...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>正在連結...
1>LINK : 沒有找到 d:\我的文件\Visual Studio 2008\Projects\MySql-Connect\Debug\MySql-Connect.exe 或上一個增量連結沒有生成它;正在執行完全連結
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>MySql_Connect.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
1>d:\我的文件\Visual Studio 2008\Projects\MySql-Connect\Debug\MySql-Connect.exe : fatal error LNK1120: 10 個無法解析的外部命令
1>生成日誌儲存在“file://d:\我的文件\Visual Studio 2008\Projects\MySql-Connect\MySql-Connect\Debug\BuildLog.htm”
1>MySql-Connect - 11 個錯誤,3 個警告
========== 全部重新生成: 成功 0 個,失敗 1 個,跳過 0 個 ==========
如果到這裡你還沒成功,繼續看下面的解析:
之前經過配置,成功的在vs2013中成功的用c語言連線上的MySQL資料庫,但是最近連線MySQL資料庫,無論怎麼配置,老是出錯。
程式碼如下:
?1 |
<ol
class= "dp-cpp" ><li
class= "alt" >#include
<windows.h> #include <stdio.h> </li><li class= "alt" >#include
<string.h> #include <mysql.h> </li><li class= "alt" >
#pragma comment (lib, "libmysql.lib" )
</li><li class= "alt" >#pragma
comment (lib, "mysqlclient.lib" )
</li><li class= "alt" > int
main() { </li><li class= "alt" >
char
szTargetDSN[] = "test" ;
char
szSqlText[500]= "" ;
</li><li class= "alt" >
MYSQL * myData; myData = mysql_init((MYSQL*)0); </li><li class= "alt" >
//連線資料庫 </li><li class= "alt" >
if(mysql_real_connect( myData, NULL ,
"root" ,
"123456" ,
szTargetDSN, MYSQL_PORT, NULL ,
0)) { </li><li class= "alt" >
printf( "資料庫連線成功!/n" );
//構造SQL語句 </li><li class= "alt" >
sprintf(szSqlText, "create
table mytable"
"(time datetime, s1 char(6), "
"s2 char(11), s3 int, s4 int)" );
if (mysql_query( myData, szSqlText)) </li><li class= "alt" >
{//執行SQL語句出錯 printf( "Can't
create table" );
</li><li class= "alt" >
mysql_close( myData ); return
FALSE ;
</li><li class= "alt" >
} printf( "表建立成功/n" );
</li><li class= "alt" >
mysql_close(myData); } </li><li class= "alt" >
return
TRUE ;
</li><li class= "alt" >}
</li></ol>
|
錯誤如下:
error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 _main 中被引用
採用了以下的辦法:
點選
1.專案->屬性->vc++目錄。
然後在"包含目錄"中新增"E:/Program Files/MySQL/MySQL Server 5.5/include"
“庫目錄”中新增"E:/Program Files/MySQL/MySQL Server 5.5/lib"和"E:/Program Files/MySQL/MySQL Server 5.5/lib/Debug"。
2.專案->屬性->連結器->輸入->附加依賴項中新增libmysql.lib
但是編譯依舊還是同樣的問題。
於是開始思考,
lib是編譯時需要的,dll是執行時需要的。
如果要完成原始碼的編譯,有lib就夠了。
如果也使動態連線的程式執行起來,有dll就夠了。
在開發和除錯階段,當然最好都有。
一般的動態庫程式有lib檔案和dll檔案。lib檔案是必須在編譯期就連線到應用程式中的,而dll檔案是執行期才會被呼叫的。如果有dll檔案,那麼對應的lib檔案一般是一些索引資訊,具體的實現在dll檔案中。如果只有lib檔案,那麼這個lib檔案是靜態編譯出來的,索引和實現都在其中。靜態編譯的lib檔案有好處:給使用者安裝時就不需要再掛動態庫了。但也有缺點,就是導致應用程式比較大,而且失去了動態庫的靈活性,在版本升級時,同時要釋出新的應用程式才行。
1.編譯是通過靜態連結庫(lib)去找到介面的。
2.#pragma comment (lib, "libmysql.lib")
#pragma comment (lib, "mysqlclient.lib")
但是這兩句程式碼並沒有報錯,證明這兩個連結庫也正常加入了啊。怎麼還是出現“無法解析的外部符號”,很納悶。
百思不得其解,踏遍百度谷歌必應。還是木有辦法,或許就是那麼靈光一閃,我擦。突然想起一個問題了。哥哥我裝的是win7 64位啊,MySQL也是赤裸裸的64位,丫的,我用WIN32 專案搞毛線。於是有一個猜想就是,MySQL 64位的lib也是64位的介面。
於是用了兩部去證明這個想法,
.專案->屬性->配置管理器
活動解決方案平臺,下拉選新建,出現一個新的對號框,在鍵入選擇新平臺中選擇X64
最後重新編譯,這次完全證明的我想法是對的。編譯成功。哦也!
最後分析一下解決這個問題關鍵,其實這個問題很簡單。搞明白dll和lib的作用,或許都能分析出這個問題了原因了。
寫到這,再去搜索果不其然
http://www.linuxso.com/sql/19105.html
再一次說明,遇到問題要善於思考。
本文出自 “小橋流水的技術部落格” 部落格,請務必保留此出處http://idear.blog.51cto.com/4097017/871174
最後,也可以直接將.h檔案和dll檔案加到你的工程目錄裡。
另外,若這些都完成了程式顯示你的計算機中缺少libmysql.dll請重新安裝,這是隻需要把libmysql.dll檔案拷貝到當前專案的debug目錄下即可。
相關推薦
VS 中引用連線mysql資料庫失敗 報錯:">LINK : fatal error LNK1104: 無法開啟檔案“libmysql.lib”
出現此類問題時,首先需要檢查一下專案配置檔案: 專案檔案——》右鍵屬性 (1)檢查VC++目錄配置配置均完成! (2)檢查連結器——》輸入配置方法如下: 若檢查以上錯誤均完成了,錯誤報錯原因就是不是配置專案的原因,開啟專案路徑檢查路徑下是否有如下兩個檔案“libmys
vs中如何配置連線mysql資料庫
vs連線資料庫其實就是將mysql資料庫.h標頭檔案介面、lib連結檔案和dll執行檔案加入到專案中。下面是配置如何加入。 轉於http://www.cnblogs.com/justinzhang/archive/2011/09/23/2185963.html 一、
MyEcplise中java連線MySQL資料庫的java.lang.NoClassDefFoundError: org/aspectj/lang/Signature問題
我用的是ecplise3.2+myecplise5.1.1+Tomcat 5.0+MySQL5.0+jdk1.5新建專案名為Test,然後在裡面新建了mysql.html和mysql.jsp功能是把mysql.html寫的東西傳到mysql.jsp中程式如下:(2.1)mysql.html <html
IntelliJ IDEA配置連線MySQL資料庫
如圖: 1、點選主介面右側邊欄Database 2、點選"+"號 3、點選Data Source 4、點選MySQL 如圖填寫資料庫名,使用者名稱和密碼,之後點選下方Test Connection測試 連線成功會顯示上圖字樣 這時發現已經可以檢視到資料庫資訊,說明
Eclipse中hibernate連線mySQL資料庫練習
下面開始搭建hibernate資料庫:1.在eclipse中新建Java project專案,名稱為:hibernateTest。右擊專案名稱,點選property,選擇Java Build Path,加入需要匯入的JAR包。2.在src資料夾下,新建hibernate.cfg.xml配置檔案,(連線資料庫的
Xadmin安裝配置+連線MySql資料庫
現有環境:Anaconda3(python3.6)Django2.0.2原始碼方式安裝xadmin1、 下載原始碼包2、 使用如下命令安裝pip install E:\python\softwork\xadmin-django2.zip安裝位置為G:\Anaconda3\
eclipse中java連線mysql資料庫
java連線mysql資料庫的基本操作 由於本人不會在CSDN中新增圖片 所以 一下解釋的圖片放在了相簿中; 在專案中匯入jar的方法截圖如下: 選擇addExternal然後根據提示匯入jar
python3在pycharm中配置django連線mysql資料庫
原因:由於python3中沒有MysqlDB驅動,所以是連不上mysql資料庫的,在python3環境中可以使用pymysql解決辦法:1.pip install pymysql2.在django專案的
Spring中整合Hibernate連線MySQL資料庫配置
Spring配置檔案applicationContext.xml中加入資料庫連線配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DT
連線mysql資料庫連線報錯,是pom檔案配置mysql連線驅動版本號問題
前一段時間安裝了最新的mysql 8.0.11,然後啟動一個專案的時候報錯資訊如下: [ERROR] 2018-08-14 17:28:21,246 method:com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:6
mac下的用idea配置jsp+tomcat連線mysql資料庫的環境
第一步 這裡假設IDEA和tomcat都以配置完成,僅差連線資料庫。 去這裡下載連線Mysql所需要的驅動程式mysql-connector-java-5.1.47-bin.jar。 第二步 下載完成後解壓獲取 並把它放在和tomcat伺服器的lib同一個資料夾下
【TCL】使用TCL連線Mysql資料庫之編譯mysqltcl(TCL安裝在CentOS 7中)
最近在用tcl,想著連線mysql,從網上查了一下發現用mysqltcl比較好,不過需要自己編譯,使用過程遇上一些問題,因此就總結了一下。首先是先編譯mysqltcl。說明一下,我的tcl是通過yum install tcl命令直接安裝的,因此不同安裝方式tcl路徑可能有變化,例如如果是通過rpm安
ThinkPHP學習(三)配置PHP5支援MySQL,連線MySQL資料庫
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
jmeter連線mysql資料庫配置
用jmeter連線mysql資料庫,在配置的過程中遇到了幾個坑,跟大家分享一下,避免人人踩坑~~ 關於驅動包:大部分時候是需要下載與伺服器的mysql相同版本的jar包~~ 關於驅動包路徑:不是所有的版本都選預設的com.mysql.jdbc.driver的,例如我的8.0.13版本,路徑為com.mys
Centos 7.2 安裝Apache、PHP、Mysql、連線Mysql資料庫的包、安裝VSFTP、並配置
一、安裝Apache、PHP、Mysql、連線Mysql資料庫的包: yum install httpd yum -y install php yum -y install php-fpm yum -y install php-mysql yum -y inst
在java程式中使用JDBC連線mysql資料庫
在java程式中我們時常會用到資料庫中的資料或操作資料庫中的資料,如果java程式沒有和我們得資料庫連線,就不能實現在java程式中直接操作資料庫。使用jdbc就能將java程式和資料庫連起來,此時我們就能在java程式裡通過java程式碼完成我們要對資料庫的操作。但是使用jdbc怎麼實現連線呢? 具體
Windows中的Linux子系統中執行python3 連線mysql資料庫時報錯Access denied for user 'root'@'localhost'
** 我是通過更換root密碼的認證方式解決的,新版mysql使用的caching_sha2_password,換成mysql_native_password我就可以連上了。 步驟是在windows系統中的Linux子系統編輯器的命令列連線mysql, 通過my
Hibernate在MyEclipse中的部署,連線MySQL資料庫
如今,更多的人使用MyEclipse而不再使用eclipse,MyEclipse比eclipse的方便之處我就不說了,但MyEclipse不是免費的,我也是使用破解版的。 在MyEclipse中如何搭建hibernate環境呢?今天學習一點點想與
#菜鳥新手EclipseJavaEE&MySQL&Tomcat#關於一個Eclipse中登陸介面通過連線MySQL資料庫進行驗證的小體驗(感謝qq群友引燃的解答讓我解決這個小問題)
原始碼: package com.atguigu.javaweb; import java.io.IOException; import java.io.PrintWriter; import java.sql.DriverManager; import j
Myeclipse中通過JDBC連線MySQL資料庫的詳細步驟
首先要說明的是,使用jdbc連線資料庫並不難,只要你按照接下來的步湊一步一步的做,理清思路,相信你肯定能夠成功。 一、準備工作 下載JDBC驅動。 網上有許多驅動可供下載,但魚龍混雜,可能部分讀者不知