2

我正在尝试将带有本教程的Qscintilla添加到我的 Qt 项目中。该库已成功安装,但类上有很多未定义的引用(例如,未定义对 'QsciScintilla::QsciScintilla(QWidget*)' 的引用或对 'QsciScintilla::SetFont(QFont const&)' 的未定义引用)

这是我的 .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
4

1 回答 1

0

您的 .pro 文件缺少以下内容:

LIBS += -lqscintilla2

您链接到的教程中也提到了这一点...

您现在-L只将目录添加到库搜索路径,但它本身不会导致添加任何新库。你基本上从来没有一个-L人,因为它并没有真正单独任何事情(在正常的工具链设置中)。该-l开关用于告诉实际库添加到链接中,然后链接器搜索它拥有的库路径。因此,如果您在自己的目录中有库,则需要两个开关。


编辑后:如果缺少实际的库文件,则应确保

  • 您实际上已经构建了它。
  • 您已经构建了正确的调试/发布版本,或者可能两者兼而有之。
  • 构建的库位于预期的目录中,与您在应用程序.pro文件中的内容相匹配。
于 2016-11-02T20:46:04.000 回答