Я пытаюсь импортировать библиотеку в затмении, но я не могу это сделать. Я знаю, что многие темы уже говорили об этой проблеме, но я не мог решить мою проблему с ними. Поэтому я ценю, если вы можете помочь.
У меня есть текстовый код:
#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
Теперь, когда в экплизе я меняю 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
Что мне здесь не хватает?
Вам необходимо установить значения переменных LD_LIBRARY_PATH в конфигурации Run / Debug.
Это обычное сообщение об ошибке компиляции, сообщающее, что он не может найти библиотеки ROOT. Обычно ROOT поставляется со скриптом setup.sh в каталоге $ {ROOTSYS} / bin /, который вам нужен для исходных текстов: он выполняет настройку среды за вас и, возможно, просто найдет его и решит вашу проблему.
Я не знаком с Eclipse, но думаю, что в нем должен быть способ указать переменные среды, например, $ ROOTSYS.
После 1 минуты поиска, я нашел многообещающую ссылку: