添加库时出现Qt错误-没有规则使其成为目标

Qt error when adding library - no rule to make target

本文关键字:有规则 目标 错误 Qt 添加      更新时间:2023-10-16

我正试图在Qt中构建一个普通的c++qmake项目,我已经使用内置的"添加库…"向导链接了代码所需的库。我已将库设置为静态。

然后用这个附加文本修改我的.pro文件:

win32: LIBS += -L$$PWD/./ -lfusionTrack32
INCLUDEPATH += $$PWD/.
DEPENDPATH += $$PWD/.
win32:!win32-g++: PRE_TARGETDEPS += $$PWD/./fusionTrack32.lib
else:win32-g++: PRE_TARGETDEPS += $$PWD/./libfusionTrack32.a

然后我尝试构建项目,并返回此错误:

mingw32-make[1]: *** No rule to make target'//icnas1.cc.ic.ac.uk/hd1714/ftk_basic/./libfusionTrack32.a', needed by 'releaseftk_basic.exe'.  Stop.
Makefile:34: recipe for target 'release' failed
mingw32-make: *** [release] Error 2

我试图添加32位库,但在尝试链接64位库时也遇到了同样的错误。该库是一个.lib导入库。我当前将所有文件都放在同一个文件夹中。我使用的是windows 7,minGW 32,g++。

如果我删除.a文件的行(我不想要):

 else:win32-g++: PRE_TARGETDEPS += $$PWD/./libfusionTrack32.a

然后我得到了两个错误:

 cannot find -lfusionTrack32
 error: ld returned 1 exit status

非常感谢您的帮助。

我的建议是,您可以自己直接修改.pro文件,而不是向导。因此,请首先撤消应用于.pro文件的所有更改,然后使用以下命令简单地添加库:

# Absolute address of the .lib file
LIBS += c:/mylib/mylib.lib
# Absolute address of its header files (if any)
INCLUDEPATH += c:/mylib/include

就是这样!更多信息