2013-03-31 52 views
3

我想单独运行我的程序。它使用libmysql.lib连接到MySQL很简单,并且需要libmysql.dll才能运行(将它放在同一个文件夹中)。现在我的问题是,我怎么能编译在c :: b,所以我可以使用我的可执行文件在其他机器上,不会需要.dll?我听说过静态库,但我不知道它是如何工作的,所以如果有人能够向我解释这个过程会非常好。如何通过静态链接在Code :: Blocks中创建独立程序

P.S.我使用GNU CC编译器。

#include <iostream> 
#include <winsock.h> 
#include <mysql.h> 


using namespace std; 


int main() { 

MYSQL *connect; 
MYSQL_RES *res_set; 
MYSQL_ROW row; 
connect = mysql_init(NULL); 


connect = mysql_real_connect(connect, "HOST", "USER", "PASS", "Server", 3306, NULL, 0); 

while(true) { 
    mysql_query(connect, "SELECT * FROM Server"); 

    res_set = mysql_store_result(connect); 

    while(row = mysql_fetch_row(res_set)) { 
     cout << row[0] << " " << row[1] << " " << row[2] << endl; 
    } 
    Sleep(2000); 
} 

mysql_close(connect); 


return 0; 
} 
+0

你是否已经有一些代码,有人可以用它作为帮助你的起点? – halfer

+1

在这里,你去,谢谢:) – user2059477

回答

3

转到Project->Build Options->(Select project name)。然后选择Linker settings并点击Link Libraries下的Add按钮,然后选择libmysql.lib。这应该静态编译你的程序,AFAIK。

请参阅在Microsoft Windows上编译MySQL客户端关于MySQL reference的章节以获取更多信息。

+2

感谢您的回答:)我已经实际上已经做到了,因为你写了正确的链接我的图书馆。然后,情况是,如果libmysql.dll不是.lib,与main.cpp或.exe文件位于同一文件夹中,程序将正常运行,否则给我一个libmysql.dll丢失的错误,那就是我正在尝试的即使libmysql.dll不存在,所以它仍然运行 – user2059477

+2

嗯,正确的:)嗯,尝试添加'-static'&'-static-libgcc'标志到'Other linker options'文本框(分开的行)在同一个“Build Options”对话框中。 – amrith92

相关问题