我已经尝试了几天在我的简单Qt项目中使用第三方库,但到目前为止没有成功。
我尝试了Plug & Paint Example和Plug & Paint Basic Tools Example。 tools / plugandpaint / plugins / basictools / basictools.pro 编译正常,但 tools / plugandpaint / app / app.pro 无法编译:
:-1: error: cannot find -lpnp_basictools
collect2.exe:-1: error: error: ld returned 1 exit status
我几乎将网站上的来源复制粘贴到我的电脑上。我能错过什么。
Windows 10
Qt Creator 3.6.0
基于Qt 5.5.1(MSVC 2013,32位)
建于2015年12月15日01:01:38
来自修订版b52c2f91f5
LIBS += your_lib_path/your_lib linux:LIBS += -L your_lib_path -lyour_lib win32:LIBS += your_lib_path/your_lib LIBS += -L lib/pcsc/ -lpcsclite LIBS += lib/pcsc/libpcsclite.a 2.add headers INCLUDEPATH += your_include_path INCLUDEPATH += . /usr/local/include)
TARGET = plugandpaint
DESTDIR = ..
QT += widgets
HEADERS = interfaces.h \
mainwindow.h \
paintarea.h \
plugindialog.h
SOURCES = main.cpp \
mainwindow.cpp \
paintarea.cpp \
plugindialog.cpp
LIBS = -L../plugins -lpnp_basictools
if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
mac:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)_debug
win32:LIBS = $$member(LIBS, 0) $$member(LIBS, 1)d
}
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint
INSTALLS += target
CONFIG += install_ok # Do not cargo-cult this!
TEMPLATE = lib
CONFIG += plugin static
QT += widgets
INCLUDEPATH += ../../app
HEADERS = basictoolsplugin.h
SOURCES = basictoolsplugin.cpp
TARGET = $$qtLibraryTarget(pnp_basictools)
DESTDIR = ../../plugins
# install
target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tools/plugandpaint/plugins
INSTALLS += target
CONFIG += install_ok # Do not cargo-cult this!
答案 0 :(得分:0)
即插即用(P&P)示例取决于从 P&P基本工具(P&P-BT)示例生成的库。换句话说,要运行第一个,您需要编译并链接第二个。 P&P 示例不是独立的。
我认为您有两种选择来运行 P&P :
我对其进行了测试,您必须在.pro文件中注释一些行,并在main.cpp文件中注释一行。
下面,我将显示与更改的行之间的差异,它会编译 P&P 而不会出错。
打开后,它找不到任何插件,因为它没有加载默认的静态库,并且因为动态库的硬编码路径为空。要测试动态插件,请将路径更改为正确的文件夹,然后再次编译,或将插件移至硬编码的文件夹。