我正在使用caffe,opencv 3.1和Qt5.6编译我的代码。以下是我的.pro文件。我没有在这里包含实际的源文件和头文件名。
QT += core gui network
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = outsideSituationDetection
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp \
<and others>
HEADERS += mainwindow.h \
< and others >
FORMS += mainwindow.ui
DEFINES += CPU_ONLY
QMAKE_CXXFLAGS += -std=c++11 -Wall -D_REENTRANT -D__STDC_CONSTANT_MACROS -pthread
QMAKE_CXXFLAGS += -DQT_COMPILING_QSTRING_COMPAT_CPP -DQT_COMPILING_QIMAGE_COMPAT_CPP
CONFIG += link_pkgconfig
PKGCONFIG += opencv
INCLUDEPATH += /usr/local/include /usr/local/lib /usr/lib
DEPENDPATH += /usr/local/include
LIBS += -L/usr/local/lib/ -lopencv_imgproc
LIBS += -lm -lglib-2.0 -lgthread-2.0 -lxml2 -pthread
INCLUDEPATH += /usr/include/glib-2.0
INCLUDEPATH += /usr/lib/x86_64-linux-gnu/glib-2.0/include
INCLUDEPATH += /usr/include/libxml2
INCLUDEPATH += /usr/include/ \
/usr/lib/x86_64-linux-gnu/ \
LIBS += -L/usr/lib/x86_64-linux-gnu/ -lglog -lpthread -lm -lrt -ldl -lnsl
DEPENDPATH += /usr/lib/x86_64-linux-gnu/
# BOOST Library
LIBS += -L/usr/lib/x86_64-linux-gnu/ -lboost_system
INCLUDEPATH += /usr/lib/x86_64-linux-gnu
#Caffe for CPU System
INCLUDEPATH += $$PWD/../../../../../src/caffe/build/include \
$$PWD/../../../../../src/caffe/include \
$$PWD/../../../../../src/caffe/build
unix:!macx: LIBS += -L$$PWD/../../../../../src/caffe/build/lib/ -lcaffe -lglog
INCLUDEPATH += $$PWD/../../../../../src/caffe/build
DEPENDPATH += $$PWD/../../../../../src/caffe/build
RESOURCES += icons.qrc
问题 - 当我编译代码时,我得到一堆错误:未定义引用&#39; QDebug :: ~QDebug()&#39;&#39;错误以及错误:未定义引用`QDebug :: putString(QChar const *,unsigned long)&#39;&#39;反对我的所有.cpp文件。 (我使用Qt5.6和Qt5.7成功构建并执行了另一个没有错误的应用程序。)
(.qtversion[qt_version_tag]+0x0):-1: error: undefined reference to `qt_version_tag' File not found (.qtversion[qt_version_tag]+0x0) in main.o
我尝试过 - 检查Qt版本以确保我使用的是Qt5.6。通过执行&#39; sudo apt-get remove qt5-default&#39;删除已安装的qt5-default。从Qt.5.7降至Q5.5降级,尽管没有任何差别。我从/ usr / include和/ usr / share中删除了qt4和qt5文件夹。
你能告诉我可能缺少什么吗?
答案 0 :(得分:0)
我有多次声明&#39; #include&#34; QDebug&#34; &#39;在文件中。删除它们只在一个文件中删除它会删除错误。 (编辑 - 它不正确,不起作用)
什么有效 - 虽然我删除了旧版本的Qt 3,4&amp; 5,qt内部使用5.2.1版本。我不知道他们来自哪里。但是当我在/ usr / lib / x86_linux_gnu /中删除它们时,编译的代码!我还在qtchooser / default.conf中明确指定了已安装目录的路径。这可能不是最好的方法,但无论如何都有效。