0

我正在尝试在 Eclipse 中导入库,但我做不到。我知道有很多线程已经讨论过这个问题,但我无法解决我的问题。因此,如果您能提供帮助,我将不胜感激。我有文字代码:

#include <iostream>
#include <TRandom1.h>
int main(void) {
  TRandom1* myrand = new TRandom1();
  for(int i=0;i<10;++i) {
    std::cout << myrand->Gaus(5,1) << std::endl;
  }
  return 0;
}

我像这样构建和运行它:

g++ -c `root-config --cflags` test.cpp
g++ -o randoms `root-config --libs` test.o
./randoms

效果很好。结果root-config --cflags是:

-pthread -m64 -I/usr/local/include/root

和结果root-config --libs

-L/usr/local/lib/root -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic

现在在 ecplise 中,我将其更改C/C++ Build-> C++ compiler -> miscellanoeus为:

-c `root-config --cflags` -fmessage-length=0

并添加root-config --libs到链接器杂项。现在我可以构建代码了。但是当我尝试运行它时,我得到:

/home/jd/C-workespace/CERN/Debug/CERN: error while loading shared libraries: libCore.so: cannot open shared object file: No such file or directory

我在这里缺少什么?

4

2 回答 2

0

您需要在运行/调试配置中设置 LD_LIBRARY_PATH 变量值。

于 2013-07-24T14:10:15.670 回答
0

这是一条常见的编译错误消息,告诉您它找不到 ROOT 库。通常,ROOT 会在 ${ROOTSYS}/bin/ 目录中附带一个 setup.sh 脚本,您需要获取该脚本:它会为您进行环境设置,也许只需获取它即可解决您的问题。

我不熟悉 Eclipse,但我认为它必须有一种方法来指定环境变量,例如 $ROOTSYS。

经过 1 分钟的谷歌搜索,我找到了一个有希望的链接:

Eclipse 环境变量设置

于 2013-11-25T23:22:14.357 回答