1

我正在使用 ubuntu 构建一个使用 mysql 的项目。要从命令行编译项目,我使用以下标志:

$(mysql_config --cflags)$(mysql_config --libs)

但是,当我尝试从 Qt 构建时,我得到了对 mysql_close 和其余 mysql 连接函数的未定义引用。

我尝试将先前命令行标志的表示添加到 Qt 中的 QMAKE 中,但仍然出现相同的错误。

有什么帮助吗?

4

3 回答 3

2

将“mysql_config --cflags”的输出添加到编译器标志中:

QMAKE_CFLAGS += $$system(mysql_config --cflags)
QMAKE_CXXFLAGS += $$system(mysql_config --cflags)

同样对于 LIBS:

LIBS += $$system(mysql_config --libs)

当然,以上所有内容都会进入您的项目文件(*.pro)。

于 2012-10-20T16:36:18.017 回答
0

要包含 Qt 的 SQL 模块,您需要这个

QT += sql

在你的.pro文件中。您还需要确保驱动程序已编译,并放入插件文件夹,libqsqlmysql.so

~/QtSDK/Desktop/Qt/4.8.0/gcc/plugins/sqldrivers

就我而言。

于 2012-10-20T15:06:53.830 回答
0

默认情况下,Mysql 不包含在 SQL 模块中,因此 Matt Philip 的解决方案将不起作用。

你需要做的是安装mysql dev包

sudo apt-get install libmysqlclient-dev

然后像这样将其添加到专业文件中

LIB += -L/usr/lib/mysql -lmysqlclient

这在 ubuntu 上对我有用

于 2012-10-20T15:17:09.990 回答