【问题标题】:Add Qscintilla library to Qt Problems将 Qscintilla 库添加到 Qt 问题
【发布时间】:2017-03-16 07:36:01
【问题描述】:

我正在尝试将带有 tutorialQscintilla 添加到我的 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

【问题讨论】:

    标签: c++ qt qmake qscintilla


    【解决方案1】:

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

    LIBS += -lqscintilla2
    

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

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


    编辑后:如果实际的库文件丢失,你应该确保

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

    【讨论】:

    • 嗯,好吧,我了解 -L 属性的工作原理,但是当我像教程一样添加“-lqscintilla2”时,我得到另一个错误:“找不到 -lqscintilla2”
    • 那么,您需要查看实际的链接命令以及使用-L 添加到其中的目录。这是否包括包含您的qscintilla2.dlllibqscintilla2.so 的目录(取决于操作系统)?
    • 通常你不应该在有人回答后扩展/更改问题(因为这会使答案无效),但在这种情况下,请随时继续编辑问题以更新 .pro 文件,然后包含实际的链接命令,它给出了错误(目前唯一的答案是我的,在这种情况下我不会介意)。
    • 好的,你可以看到我是新人哈哈,谢谢你的建议,我编辑了这个问题。所以,我的目录中没有任何qscintilla2.dlllibqscintilla2.so。哦,为了更精确,我在 linux (fedora 24) 上
    • @M.Duchemin 那么您是否忘记了构建 QScintilla 库? :)
    猜你喜欢
    • 2016-11-17
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多