在Linux上将QtCreator 3.0.1与Qt 5.2.1结合使用时遇到问题。我正在尝试使用QtCreator的内置“build”功能编译我的项目,我想它先运行qmake project.pro
,然后运行make
。我的项目使用QScintilla,我已将其编译到静态库(.a
)中,并包含在项目的qscintilla/Qt4Qt5
目录中。
编译完成后,编译输出 Pane 将显示以下内容:
/usr/bin/ld: cannot find -lqscintilla2
collect2: error: ld returned 1 exit status
我的
.pro
文件包含:LIBS += -Lqscintilla/Qt4Qt5 -lqscintilla2
但是,通过终端模拟器在项目的根目录上运行
qmake
,然后运行make
可以完美地工作,并且该项目已成功编译和链接。我已经仔细检查了qscintilla/Qt4Qt5
目录是否包含文件libqscintilla2.a
。 最佳答案
由于您似乎正在使用Linux,因此最好将该软件包留在发行版中。安装将静态库带入系统的软件包会更加“麻烦”。
但是,如果您希望坚持项目内构建原则,则建议不要禁用影子构建并创建其他有其自身局限性的解决方法。
例如,您可以为此目的使用$$OUT_PWD variable,但通常,您还需要指定组件之间的目标依赖关系。
因此,您将需要编写如下内容:
LIBS += -L$$OUT_PWD/qscintilla/Qt4Qt5 -lqscintilla2
请根据您的目录布局进行调整。
关于c++ - QtCreator-无法链接到静态库(ld错误),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21976528/