12

我有一个共享库(没有 QT 依赖项)[库 B],它链接到另一个共享库(也没有 QT 依赖项)[库 A]。

我正在使用 Qmake 和 QT Creator 1.3。问题是,当我构建库 B 并在可执行文件上运行 ldd 时,它被链接到 QtCore 和 QtGui,这两个文件都拉入了大量不需要的文件,导致可执行文件加载时间很长,并且有不需要的文件依赖关系。

我已经尝试了几乎所有方法来阻止 qmake 将这些库链接到库 B。

我的库 B 项目文件的片段如下所示:

TEMPLATE = lib
LIBS += -L../datelib/bin -ldatelib_release

QT -= gui core
LIBS   -= -lQtGui -lQtCore
CONFIG += dll
CONFIG += debug_and_release

CONFIG(debug, debug|release) {
TARGET =targetnameD
}else {
TARGET = targetname
}

我在 Ubuntu 9.10 上使用 QtCreator 3

QT 是版本 4.5.2

4

5 回答 5

13

Put CONFIG -= qt in your .pro file.

于 2010-02-20T11:16:11.850 回答
3

你可以试试

CONFIG += dll
QT     -= gui core
LIBS   -= -lQtGui -lQtCore
于 2010-02-19T14:27:46.850 回答
2

对于应用程序,您可以这样做:

TEMPLATE = app
CONFIG = console

更多信息: qmake 常见项目

于 2013-03-05T20:10:30.660 回答
1

我有类似的问题。我所做的是创建没有 qtcore 和 qtgui 的新库项目。删除了向导创建的所有不必要的文件。将我的文件添加到项目文件夹并修改 *.pro 文件。它开始正常工作。

这是 QtCreator 的一些问题,它无法正确读取生成 .pro.user 的 .pro 文件,使用 QtCreator 进行构建,向导生成正确的 .pro.user 文件。

我用 Qt 4.7 做到了这一点

希望得到这个帮助。

于 2010-11-03T12:12:46.500 回答
0

据我所知,如果您没有将它们与 IDE 分开设置,Qt 创建者不会考虑 .pro 配置。

您应该转到项目的设置,克隆调试配置,将其重命名为发布,将 QMake 构建配置设置为发布(!)并根据需要更改其他设置。然后,您可以从 IDE 中选择要构建的配置。

PS:尝试使用 Qt Creator 1.3.1,因为它修复了很多错误并带来了有趣的新功能。

于 2010-02-19T15:08:06.393 回答