在另一个QT项目中包含一个QT库
Including a QT library in another QT project
我正在尝试包括我在QT项目中编写的库。我已经将库导入到项目中,并包含了头文件。然而,当我试图构建引用我的库中的任何类的项目时,我得到一个LNK2001: unresolved external symbol error
,我仍然是QT的新手,我确信有一个简单的修复我所犯的错误,但我无法在其他任何地方找到它。
.pro文件:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = SL-Reporter
TEMPLATE = app
SOURCES += main.cpp
SLReportMainWindow.cpp
ProjectEditorWindow.cpp
OptionsWindow.cpp
FileManager.cpp
Project.cpp
HEADERS += SLReportMainWindow.h
ProjectEditorWindow.h
OptionsWindow.h
FileManager.h
Project.h
CPPRTF/ColorOutOfRangeException.h
CPPRTF/cpprtf_global.h
CPPRTF/Exception.h
CPPRTF/InvalidFontException.h
CPPRTF/RTFColor.h
CPPRTF/RTFDocument.h
CPPRTF/RTFFont.h
CPPRTF/RTFObject.h
CPPRTF/RTFTextElement.h
FORMS += SLReportMainWindow.ui
ProjectEditorWindow.ui
OptionsWindow.ui
DISTFILES +=
../SL-Compare/SLCompare
CPPRTF/CPPRTF.lib
CPPRTF/CPPRTFd.lib
CPPRTF/CPPRTF.dll
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../CPPRTF/build-CPPRTF-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug/release/ -lCPPRTF
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../CPPRTF/build-CPPRTF-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug/debug/ -lCPPRTF
else:unix: LIBS += -L$$PWD/../CPPRTF/build-CPPRTF-Desktop_Qt_5_7_0_MSVC2015_64bit-Debug/ -lCPPRTF
INCLUDEPATH += $$PWD/../CPPRTF/CPPRTF
DEPENDPATH += $$PWD/../CPPRTF/CPPRTF
似乎-L$$PWD/../CPPRTF/
和CPPRTF/
指向不同的位置。检查您在哪里创建了该目录:从当前目录(您的项目.pro文件所在的位置)上一级还是在当前目录中?
添加到项目文件:
# simpler case
LIBS += -lMyLib
你可以指定路径:
# adding many paths/libs
LIBS += -LAbsolutePath
-L$$PWD/CurDirRelativePath
-lMyLib1
-lMyLib2
和DISTFILES
变量似乎不需要有*。添加Lib文件。只*。所以对于Linux/MacOS和Windows的*.dll,我们通常添加到DISTFILES
.
手册《向项目添加库》
您可以使用Qt Creator助手。右键单击您的项目并选择:Add Library…。
在外部库之后,然后在库文件旁边使用浏览器添加.dll,.so,.dylib,…
只要选择你的操作系统,点击下一步,助手会为你做的。
相关文章:
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- Qt:"Q3DScatter"即使包含在内也无法识别
- 检查一个数组是否包含在另一个数组中,以相反的顺序,至少两次
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 搜索字符串是否至少包含一次从 0 到 9 的所有数字的最有效方法
- 至少包含一次字符 X 的 S 的不同子字符串的数量
- C++包含一组对象的类
- Qt包含和预编译标头的最佳实践
- Qt包含来自上述目录的头文件
- Qt 包含路径
- 我想在C++项目中包含一种脚本语言.Lua vs Bison/Yacc
- 为什么我可以在多个包含const int的cpp文件中包含一个头文件,而不会出现编译器错误
- QT - 包含路径,"include"作为目录不会包含
- Qt 包含另一个项目的类(无法打开包含文件:"foo.h")
- Qt包含文件
- 有没有办法将源代码格式化为每行只包含一条语句
- 双链接列表总是只包含一条记录
- 页眉应包含一次
- 头文件在整个程序中仅包含一次
- Qt:包含.pri来使用库-不正确的包含