2016-05-11 12 views
0

Ich möchte Root-Cern-Bibliotheken in meinem Qt-Programm verwenden. Aber ich habe Probleme mit Linker:undefined Bezug zu `TVersionCheck :: TVersionCheck (int)

undefined reference to `TVersionCheck :: TVersionCheck (int)

Ich weiß nicht, was der Grund ist. Ich habe ein anderes Forum gelesen, kann das Problem aber immer noch nicht verstehen. Bitte hilf mir.

Die .pro Dateiinhalt:

QT += core 
QT -= gui 

CONFIG += c++11 

TARGET = v_root_trees_2 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 

SOURCES += main.cpp 

INCLUDEPATH += "C:/root_v5.34.34/include" 

LIBS += -L"C:/root_v5.34.34/lib" \ 
-lcomplexDict \ 
-ldequeDict \ 
-lfreetype \ 
-llibAfterImage \ 
-llibASImage \ 
-llibASImageGui \ 
-llibCint \ 
-llibCintex \ 
-llibCore \ 
-llibEG \ 
-llibEGPythia8 \ 
-llibEve \ 
-llibFitPanel \ 
-llibFoam \ 
-llibFTGL \ 
-llibFumili \ 
-llibGdml \ 
-llibGed \ 
-llibGenetic \ 
-llibGenVector \ 
-llibGeom \ 
-llibGeomBuilder \ 
-llibGeomPainter \ 
-llibGLEW \ 
-llibGpad \ 
-llibGraf \ 
-llibGraf3d \ 
-llibGui \ 
-llibGuiBld \ 
-llibGuiHtml \ 
-llibGviz3d \ 
-llibHist \ 
-llibHistPainter \ 
-llibHtml \ 
-llibMathCore \ 
-llibMathMore \ 
-llibMatrix \ 
-llibMinuit \ 
-llibMinuit2 \ 
-llibMLP \ 
-llibNet \ 
-llibPhysics \ 
-llibPostscript \ 
-llibProof \ 
-llibProofDraw \ 
-llibProofPlayer \ 
-llibPyROOT \ 
-llibQuadp \ 
-llibRecorder \ 
-llibReflex \ 
-llibReflexDict \ 
-llibRGL \ 
-llibRHTTP \ 
-llibRint \ 
-llibRIO \ 
-llibRODBC \ 
-llibRooFit \ 
-llibRooFitCore \ 
-llibRooStats \ 
-llibRootAuth \ 
-llibSessionViewer \ 
-llibSmatrix \ 
-llibSpectrum \ 
-llibSpectrumPainter \ 
-llibSPlot \ 
-llibSQLIO \ 
-llibTable \ 
-llibThread \ 
-llibTMVA \ 
-llibTree \ 
-llibTreePlayer \ 
-llibTreeViewer \ 
-llibUnuran \ 
-llibVMC \ 
-llibWin32gdk \ 
-llibXMLIO \ 
-llistDict \ 
-lmap2Dict \ 
-lmapDict \ 
-lmathtext \ 
-lmultimap2Dict \ 
-lmultimapDict \ 
-lmultisetDict \ 
-lsetDict \ 
-lvectorDict 

main.cpp-Datei:

#include <QCoreApplication> 

#include "TMultiGraph.h" // problem if add this line 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    return a.exec(); 
} 

Ich weiß nicht, was falsch ist. Ich habe alle .lib Dateien hinzugefügt. Die Pfade C:/root_v5.34.34/lib und C:/root_v5.34.34/include sind korrekt und existieren. Ändern von Pfaden sehe ich cannot find ... Fehler. So sind die Pfade korrekt.

Ich überprüfte den ähnlichen Code in VS2013 und sehe keine Fehler. Aber ich schreibe viel Code in Qt und kann IDE nicht ändern. Ich verstehe, dass einige Links den Fehler verursachen, aber nicht finden können.

Antwort

1

Einige Bibliotheken in Ihrem Projekt sind falsch enthalten. z.B. -llibAfterImage -llibASImage -llibASImageGui sollten Sie -lAfterImage -lASImage -lASImageGui schreiben und so weiter ... Wenn ich Ihre .proDatei korrigiert gelang es zu bauen. Möglicherweise einer jener falsch eingebundenen Bibliotheken enthält Implementierung von TVersionCheck :: TVersionCheck (int)

+0

Es funktioniert nicht: nicht -lAfterImage [link] (http://prntscr.com/b5204w) – Vladislav

+0

Die Wege finden sind korrekt: [libs path] (http://prntscr.com/b5226y) – Vladislav