2013-08-05 2 views
0

Я пытаюсь скомпилировать этот пакет и продолжать получать неопределенную ссылку на ошибку. Я скопировал и отредактировал окончательный код компилятора в make-файле, чтобы убедиться, что необходимые внешние библиотеки вызываются перед другими библиотеками.Неопределенная ошибка ссылки, даже после указания флагов -L и -l

Вот ошибка,

<path>/libqroot.so: undefined reference to `TLatex::TLatex()' 

TLatex.h в <path>/ROOT/include, TLatex определяется в библиотеке Graf (libGraf.so) и находится в <path>/ROOT/lib

Вот команда,

g++ file.cxx -Wall -g -ggdb -fPIC -pthread -m64 
-I<root-path>/ROOT/include 
-I/usr/include 
-I./ 
-I/usr/include 
-I<root-path>/ROOT/include 
-I<project-path>/pkg/base/ 
-I<project-path>/pkg/dianaglobal/ 
-I<project-path>/pkg/globalrw/ 
-I<project-path>/pkg//coretools/ 
-L<project-path>/lib 
-L<root-path>/ROOT/lib 
-lqroot -lcoretools -lmathtools -lbase -lgsl -lgslcblas-lGui -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic -lGeom -lMinuit -lSpectrum -lMathMore -lMathCore -lThread -lRootAuth -lFoam 
-o <project-path>/bin//file 

Очевидно, что нет символов новой строки.

Пожалуйста, помогите мне понять, что случилось.

спасибо.

ответ

1

Сначала удостоверьтесь, что -lGraf передан, если символ находится в libGraf.so. Порядок линии связи имеет значение. Для g ++ библиотека, содержащая определение функции, должна появляться после любых исходных файлов или файлов объектов, которые ее используют. Таким образом, учитывая ошибки, вы видите:

-lqroot -lGraf -lcoretools -lmathtools -lbase -lgsl -lgslcblas 

http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html#Link-Options

Далее вам редактировать, эта ошибка будет возникать, если ваши файлы заголовков не совпадают с вашими библиотеками.

+0

oops, извините, есть большое пространство между так u, вероятно, не видел его. (Извините, добавленные пробелы, чтобы отличить те, что были в терминале, и удалили все, кроме этого) – xcorat

+0

так что да, -lGraf на самом деле там, но не ссылки справа. вот в чем проблема .. – xcorat

Смежные вопросы