【发布时间】:2016-07-21 02:26:05
【问题描述】:
我正在尝试在 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 'release\ftk_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
非常感谢任何帮助。
【问题讨论】:
-
库没有命名为 libfusionTrack32.a ?
-
不幸的是不是@perencia,这个库叫做fusionTrack32.lib,我相信.a文件是针对unix的,.lab是windows的……see here
-
标签: c++ qt qt5 static-libraries