我正在尝试添加 Qscintilla有了这个tutorial到我的 Qt 项目。该库已成功安装,但类上有很多 undefined reference (例如,未定义对“QsciScintilla::QsciScintilla(QWidget*)”的引用或对“QsciScintilla::SetFont(QFont const&)”的 undefined reference )
这是我的 .pro 文件:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = QscintillaTest
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/./QScintilla/Qt4Qt5/release/ -lqscintilla2
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/./QScintilla/Qt4Qt5/debug/ -lqscintilla2
else:unix: LIBS += -L$$PWD/./QScintilla/Qt4Qt5/ -lqscintilla2
INCLUDEPATH += $$PWD/./QScintilla/Qt4Qt5/
DEPENDPATH += $$PWD/./QScintilla/Qt4Qt5/
我希望有人能帮助我。
编辑:
添加 -lqscintilla2
后出现此错误:
Cannot find -lqscintilla2
最佳答案
您的 .pro 文件缺少此内容:
LIBS += -lqscintilla2
您链接到的教程中也提到了这一点...
-L
您现在只将目录添加到库搜索路径,但它本身不会导致添加任何新库。您基本上永远不会单独使用 -L
,因为它实际上不会单独做任何事情(在正常的工具链设置中)。 -l
开关用于告诉实际的库添加到链接中,然后链接器搜索它拥有的库路径。因此,如果您在自己的目录中有库,则需要两个开关。
编辑后:那么如果缺少实际的库文件,你应该确保
- 您实际上已经构建了它。
- 您已经构建了正确的调试/发布版本,或者可能两者都构建了。
- 构建的库位于预期目录中,与您在应用程序 .pro 文件中的内容相匹配。
关于c++ - 将 Qscintilla 库添加到 Qt Problems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40389285/