c++ - 对 `TVersionCheck::TVersionCheck(int) 的 undefined reference

标签 c++ qt root-framework

我想在我的 Qt 程序中使用根 cern 库。但是我的链接器有问题:

undefined reference to `TVersionCheck::TVersionCheck(int)

不知道是什么原因。我确实阅读了另一个论坛,但仍然无法理解这个问题。请帮帮我。

.pro 文件内容:

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 文件:

#include <QCoreApplication>

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

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

    return a.exec();
}

不知道怎么回事。我添加了所有 .lib 文件。 路径 C:/root_v5.34.34/libC:/root_v5.34.34/include 是正确的并且确实存在。更改路径时我看到 cannot find ... 错误。 所以,路径是正确的。

我在 VS2013 中检查了类似的代码,没有看到任何错误。 但是我用Qt写了很多代码,改不了IDE。 我知道,某些链接导致了错误,但找不到它。

最佳答案

您项目中的某些库未正确包含。例如-llibAfterImage -llibASImage -llibASImageGui 你应该写 -lAfterImage -lASImage -lASImageGui 等等... 当我更正您的 .pro 文件时,构建成功。 可能其中一个错误包含的库包含 TVersionCheck::TVersionCheck(int)

的实现

关于c++ - 对 `TVersionCheck::TVersionCheck(int) 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37170350/

相关文章:

c++ - 需要帮助在 C++ 中调试

c++ - 读取单词到文件 C++

c++ - 当基类是 QFile 时,为什么我不能从 QIODevice 重新实现方法?

c++ - 自定义 QComboBox

c++ - Qt 4.7 找不到符号错误

crash - root(cern)因libpng问题Fedora 20而崩溃

c++ - boost::date_time 和 std::chrono 之间的互操作性

c++ - 在多边形内查找 Boost rtree 元素

c++ - 从文本文件创建和填充 ROOT 文件

c++ - 使用 IDE 设置 CERN ROOT