/usr/bin/ld: не удается найти -llibeststring.a

В своей программе я использую API фестиваля TTS C++. Я скачал все файлы с http://www.cstr.ed.ac.uk/downloads/festival/2.0.95/ и успешно установите фестиваль и voice_tools на моем UBUNTU 10.04.

теперь при компиляции моей программы на С++ gcc выдает ошибку:

g++ -L/usr/lib -L/home/peeyush/Desktop/festival/src/lib -L/home/peeyush/Desktop/speech_tools/lib -o"peeyush" ./src/peeyush.o -llibeststring.a -llibestbase.a -llibestools.a -llibFestival.a
/usr/bin/ld: cannot find -llibeststring.a
collect2: ld returned 1 exit status
make: *** [peeyush] Error 1

поэтому, пожалуйста, помогите мне разобраться с этой ошибкой.

-Спасибо

Пиюш Чандел (ИНДИЯ)


person CuriousCase    schedule 01.06.2010    source источник
comment
Когда вы используете -l, имена библиотек автоматически добавляются к префиксу lib. Поэтому вместо этого используйте -lbeststring -lbestbase и т. д.   -  person p00ya    schedule 01.06.2010


Ответы (1)


При использовании параметра -l вы не указываете начальную lib или конечную .a или .so части имени, поскольку они предполагаются компоновщиком. Вы бы хотели использовать что-то вроде -leststring, чтобы подобрать его (при условии, что ваш путь -L установлен правильно.

В качестве альтернативы вы можете указать точное имя файла (то есть не -l, просто libeststring.a) как часть списка объектов для ссылки (убедитесь, что порядок правильный относительно ваших файлов .o), но я полагаю, что в этом случае вам нужно будет указать путь, так как компоновщик не будет знать, как искать ваш путь -L. Однако проще всего использовать -l.

person Mark B    schedule 01.06.2010