linux ld如何解释-lSomething :: AnotherSomething(例如/ usr / bin / ld:找不到-lQt5 :: Widgets)

问题描述 投票:0回答:1

我从CMakeLists.txt收到此错误:

/usr/bin/ld: cannot find -lQt5::Widgets

我尝试做

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/Qt/5.12.6/gcc_64/lib

然后再次运行make,但是出现相同的错误。 /home/user/Qt/5.12.6/gcc_64/lib具有以下文件(及更多):

libQt5Widgets.la
libQt5Widgets.prl
libQt5Widgets.so
libQt5Widgets.so.5
libQt5Widgets.so.5.12
libQt5Widgets.so.5.12.6
libQt5Widgets.so.5.12.6.debug

当您这样做时,ld将搜索什么:-lQt5::Widgets?我只能想象它在搜索libQt5Widgets.x

c++ qt shared-libraries ld
1个回答
0
投票

将lib放在最前面,并寻找以.a.so结尾的文件。您的命令将寻找libQt5::Widgets.solibQt5::Widgets.a。您应该改用-lQt5Widgets

请注意,LD_LIBRARY_PATH对链接器没有影响,仅在运行时查找共享库时使用(并且在可执行文件中正确使用rpath时也没有必要)。您可能需要LIBRARY_PATH

© www.soinside.com 2019 - 2024. All rights reserved.