如何动态包含.lib文件?

时间:2010-11-30 14:12:57

标签: qt qt-creator qmake

我的项目出了问题。我在Qt Creator上开发它,我需要在我的项目中添加一个.lib文件。所以,我在.pro中写了这一行:

LIBS += "C:\My_Path\My_Project\lib\file.lib"

这很好用。我唯一的问题是我需要编写.lib文件的完整路径。由于它是一个组项目,因此需要在其他计算机上进行编译,而不必每次都更改此文件的路径。

我尝试了很多语法,例如:

LIBS += -L"lib/" -l"file.lib"

LIBS += "lib\file.lib"

LIBS += "file.lib"

(将.lib文件放在根目录并将其添加到Qt Creator中的项目中)

它们都不起作用:/

我还尝试在QResource文件中添加.lib文件,但语法如下:

LIBS += ":/lib/file.lib"
.pro文件中的

似乎不起作用......

我现在已经没想完了:(

请帮助:)

3 个答案:

答案 0 :(得分:1)

你试过吗

LIBS += -Llib -lfile

LIBS += -L./lib -lfile

请记住,如果您没有使用完整路径,则不要将.lib添加到库名称,也不要使用引号。如果路径有空格(或者您只是想要安全),请使用$$quote(-L<path name>)

如前所述here,Unix样式路径也适用于Windows,您通常需要提供完整路径。 qmake会为你填写。

我转换了

LIBS += ../../lib/phraseBox.lib

LIBS += $$quote(-L../../lib) -lphraseBox

LIBS += $$quote(-L../../lib) phraseBox.lib

在我的一个项目中,在Windows上没有问题。您可能希望在某处发布项目文件,或发布实际的错误消息以缩小范围。

答案 1 :(得分:1)

好的,我找到了解决方案:

lib /目录必须放在与Makefile(真实文件,而不是.pro)相同的目录中。
因为我在build-desktop /目录中复制了lib /目录,所以使用相对路径一切正常:)

答案 2 :(得分:0)

从您的尝试中我想您想使用相对路径链接到库,默认情况下应该可以正常工作。

试试这个:

LIBS += -L$$relative/directory/path -llibname

如果它不起作用,那么您可能想尝试设置多个INCLUDEPATH。 :/