2011-02-03 2 views
2

Я пытаюсь использовать API-интерфейс ta-lib (http://ta-lib.org/) в моем приложении C. Я загрузил источники ta-lib, установил их в своей системе, используя make install. Библиотека успешно скомпилирована, и у меня есть ее двоичные файлы в /usr/local/lib/. Тогда я компилирую мое приложение, как предложено на та-Lib сайте:Невозможно скомпилировать источники с ta-lib

$ gcc -L/usr/local/lib -lta-lib -o tlc talib_test.c 
/usr/bin/ld: cannot find -lta-lib 
collect2: ld returned 1 exit status 
$ 

Любые идеи, что происходит не так?

ОС: Я использую Ubuntu 9.

ответ

0

Где libta-lib.a? Сообщение об ошибке предполагает, что компоновщик не может найти библиотеку.

1

Есть ли вероятность, что вы установили 32-битную копию libta-lib.so и скомпилируете 64-битную тестовую программу или наоборот? То есть, не могли бы вы иметь несоответствие в типе библиотеки?

В противном случае вы просмотрели /usr/local/lib, чтобы проверить, что у вас есть libta-lib.so? Или может быть, что на самом деле библиотека называется libta.so или что-то в этом роде, поэтому вам нужно указать -lta в командной строке?


На моем Mac, библиотека была установлена, как показано на рисунке (через пару минут компиляции):

/usr/bin/install -c .libs/libta_lib.lai /usr/gnu64/lib/libta_lib.la 
/usr/bin/install -c .libs/libta_lib.a /usr/gnu64/lib/libta_lib.a 

Это потребует -lta_lib с подчеркиванием вместо -lta-lib с тиром.

+0

Использование '-lta_lib' вместо' -lta-lib', как и предложения docs, сработало для меня. – Justin

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