不能链接到c++的MySQL库

Cannot link to MySQL libraries for C++

本文关键字:MySQL c++ 链接 不能      更新时间:2023-10-16

我一直在尝试使用MySQL和c++在一起,但似乎无法开始,因为我似乎无法获得相关库的使用

我在Win7使用MinGW编译器和Netbeans工作。我有代码:

#include <cstdlib>
#include <iostream>
#include <my_global.h>
#include <mysql.h>
using namespace std;
int main(int argc, char **argv)
{
  cout << "MySQL client version: " <<  mysql_get_client_info();
}

但是netbeans找不到my_global.h或mysql.h。在项目的属性,我已经链接到库libmysql.dll。在同一目录下还存在mysqlclient。但是我找不到一种方法来链接到NetBeans链接器似乎没有注册该扩展类型。

任何帮助都将是非常感激的。

C

——进步我进入NetBeans的"属性->构建-> c++"部分,并在"包含目录"部分添加了MySQL安装的包含目录。这已经解决了上面没有找到my_global.h或mysql.h的问题,但现在它无法找到crtdbg.h…

实际上在旧的Visual Studio安装中有crtdbg.h,将它和所有其他。h文件移到我的MinGW包含文件夹中。似乎找到了。hs现在,但失败的错误负载,可能是Visual Studio .h文件与MinGW不兼容的问题。

设置包含目录,伙计。它在Tools->Options->C++->Code Assistance下。添加my_global.h所在的路径。

我不确定在Windows中,但在Linux中,您可以使用mysql_config工具获得正确的标志来编译客户端应用程序:

编译:

$ mysql_config --cflags
-I/usr/include/mysql  -DBIG_JOINS=1  -fno-strict-aliasing   -DUNIV_LINUX -DUNIV_LINUX

链接:

$ mysql_config --libs
-Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqlclient

现在,如果您正在使用MinGW,选项应该是类似的,可能会删除*_LINUX选项。

我敢打赌,您只是错过了-I位。