如何静态编译和链接Qt到MySQL

时间:2012-05-25 08:52:44

标签: c++ mysql qt static

我这里有以下问题。我正在用Qt编写多平台(Linux / Windows)应用程序。

问题出在Linux上:我为了摆脱Qt库而静态编译Qt(并且为了拥有一个大的可执行文件),以下是我的配置行:

./configure -qt-sql-mysql -static -prefix ~/qt-4.6.3-static -platform linux-g++ -I /usr/include/mysql -opensource -webkit

还有一些不那么重要的参数。我使用qt 4.6.3,因为4.7不支持webkit的静态链接,webkit用于应用程序的帮助系统。现在,应用程序也在使用MySql,我现在想让QT处理mysql的东西,所以我告诉他把它链接到(qt-sql-mysql)。当我分发应用程序时,主要问题出现了:

现在我在CentOS 6上开发,显然CentOS 6带有他自己的MySQL库(16),当我将应用程序移动到具有mysql库18版本的Linux Mint 13盒子时,应用程序不再启动,只是以下熟悉的错误:

./ddm: error while loading shared libraries: libmysqlclient_r.so.16: cannot open shared object file

(是的,我已经安装了libmysqlclient-dev)

所以现在这就是我的困境:我希望尽可能多的Linux用户可以使用该应用程序,而不必分别为每个平台构建安装包。

这就是问题:你知道一种构建Qt的方法,以便它静态链接到libmysql吗?我想摆脱界限:

$ ldd ./ddm | grep mysql
    libmysqlclient_r.so.16 => not found

来自应用程序的动态依赖关系。

或者任何其他建议都是受欢迎的,只要我不需要为所有平台制作单独的安装包。

由于

0 个答案:

没有答案