我正在用caffe,opencv 3.1和Qt5.6編譯我的代碼。以下是我的.pro文件。我沒有在這裏包括實際的源文件和頭文件名。Qt錯誤:未定義的引用'QDebug ::〜QDebug()'
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
問題 - 當我編譯代碼時,我收到了一堆的「錯誤:未定義的引用‘QDebug ::〜QDebug()’錯誤」連同錯誤」:未定義的引用`QDebug :: putString (QChar常量*,無符號長)「'對我所有的.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。通過執行'sudo apt-get remove qt5-default'刪除已安裝的qt5默認值。從Qt5.7降級到Qt5.6,雖然沒有任何區別。我從/ usr/include和/ usr/share中刪除了qt4和qt5文件夾。
你能提出一些我可能會錯過的建議嗎?
真的嗎?標題包含警衛,所以你應該可以'#include'儘可能多的次數。我剛剛證實了這一點上的Qt 5.6,沒有任何問題: 的#include 的#include INT主要(){ qDebug()<< 「測試」; } –
你說得對。這不是解決方案。我仍然有同樣的問題。我不確定我能做什麼。 – user2892909
你正在做的事情非常錯誤,因爲你應該可以有多個Qt版本共存。你不應該刪除它們中的任何一個。要使用某個Qt版本,您必須創建一個空的構建文件夾,然後從build文件夾中調用源中選定的Qt的'qmake' **。它會使用選擇的Qt在build文件夾中設置Makefile。例如。 'mkdir build && cd build && /opt/Qt/5.6.1/bin/qmake〜/ src/myproject && gmake -j' –