c++ - 针对非二进制库的静态链接

标签 c++ qt static-libraries qt-creator static-linking

我想使用两个库 QCustomPlotEigen在 OS X 上使用 Qt Creator。 如果我只是将它们放入我的项目文件夹并将它们添加到项目中,则两者都不需要安装并且可以正常工作。它们不必安装,“您可以立即使用头文件”。

但是我希望它们比这更独立,位于项目之外以供其他项目使用,我不希望它们的头文件和源文件与我的项目文件一起出现。但我不知道如何静态链接它们。

  • INCLUDEPATH +=/../../Eigen/Eigen\
  • 添加图书馆... -> 外部图书馆

显然行不通,第二个是因为它们没有要打开的库文件。 我没有使用图书馆的经验,并且倾向于发现这个主题非常复杂。

最佳答案

如注释中所述,对于仅包含库的模板,INCLUDEPATH 应该足够了。通常,您可以通过手动修改 YourProject.pro 文件来完成,例如:

LIBS += -L$$PWD/path_relative_to_pro_file/lib -lmylibfile1 -lmyflibfile2
INCLUDEPATH += $$PWD/path_relative_to_pro_file/lib/include

您的库文件名以 .lib 结尾。 如果您希望由于外部库更改而重新编译您的项目:

DEPENDPATH += $$PWD/path_relative_to_pro_file/lib
DEPENDPATH += $$PWD/path_relative_to_pro_file/lib/include

关于c++ - 针对非二进制库的静态链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30309701/

相关文章:

c++ - QtSerialPort 有不可用的数据,仅在 Windows 8 下出现段错误

c++ - QT COMPILER_MACROS 未在项目开始时定义

ios - 确定 Xcode 5 工作区中构建项目的顺序(具有静态库项目之间的依赖关系)

c++ - 在 C++ 中动态改变指针的大小

c++ - Qt Creator,项目套件中的编译器被忽略

c++ - 尝试获取文件 MD5 时 Qt 程序卡住

ios - 为什么 Apple 不允许在框架中使用静态库?

c++ - 存储子类指针的方法

python - PyQt5:如何为每个角色设置自定义鼠标指针?

C 静态库无法相互识别 - 为什么我得到 "undefined reference to ` 函数`”?(链接器错误)