2010-03-03 4 views
2

Я писал коды в linux с помощью c. Когда пытался скомпилирован, я получил такой ответ:Почему я не могу использовать свою библиотеку GMP в Linux

/tmp/ccW8mQDx.o: In function `main': 
server.c:(.text+0x3e): undefined reference to `__gmpz_set_str' 
server.c:(.text+0x5a): undefined reference to `__gmpz_set_str' 

На самом деле, все функции ГОГО, которые я использовал, не могли быть найдены.

Похоже, что есть проблема с gmp.

Может ли кто-нибудь рассказать мне, как его решить? Заранее спасибо!

+2

Можете ли вы показать свои команды сборки и связи? Думаю, вы, вероятно, не связываетесь с какой-либо библиотекой, содержащей этот символ. –

+0

Я просто использую gcc server.c -o server ... что еще я должен добавить? – allenzzzxd

ответ

4

Ошибка undefined reference появляется, когда вы забыли link ваше приложение с библиотекой, GMP в этом случае. Прочтите в документации GMP имя библиотеки, чтобы связать и использовать переключатель компилятора -l, чтобы связать его.

Вы попробовали -lgmp?

Если это не работает, вы можете искать libgmp.a библиотеки:

cd /usr 
find . -name libgmp.a -print 
+0

, если это не работает, также добавьте '-L/path/to/directory/содержащий/libgimp.so', который добавляет путь поиска библиотеки – cobbal

+0

-lgmp работает, спасибо большое – allenzzzxd

0

Добавить опцию -l, при компиляции кода. Он добавит файлы библиотеки.

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