Qt - QMAKE_LIBDIR与LIBS的区别

10

可以发现QMAKE_LIBDIR用于指定额外的库目录的例子很多。

Qt手册上说:

QMAKE_LIBDIR

指定系统库路径列表。这个变量的值通常由qmake或qmake.conf处理,很少需要修改。

到目前为止,每当我想在我的项目中使用外部库并且不想使用库向导时,我总是使用“unix:- L $ $(LIB_DIR) - l”或类似的命令。

我可以得出结论,即使在手册中没有相应的说明,通过-L指定路径也是不鼓励的吗? (根据这篇文章的说法,它是不鼓励的——但是为什么?)

提前致谢。

2个回答

9
在某种程度上有一个相应的语句。将您的-Lpath/to/dir放入LIBS变量中: 请参考http://doc.qt.io/qt-5/qmake-variable-reference.html#libs LIBS 指定要链接到项目中的库列表。如果使用Unix -l(库)和-L(库路径)标志,则qmake可以在Windows上正确处理库(即将库的完整路径传递给链接器)。 qmake必须找到该库才能找到-l lib所在的目录。 例如: unix:LIBS += -L/usr/local/lib -lmath win32:LIBS += c:/mylibs/math.lib
因此,Qt文档实际上鼓励在LIBS中使用-L

也许对某些人有用,但当我只添加 win32:LIBS += path/to/lib 时,出现了错误“权限被拒绝”。在路径前面添加 -L 可以解决这个问题。 - NordMan

2
您可以在不像LIBS那样编辑*.pro文件的情况下,在外部设置QMAKE_LIBDIR

qmake QMAKE_LIBDIR=~/build/obj/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接