Я бегу ..НКУ неопределенная ссылка на
gcc -c -I/usr/vt/sample ttssample.c
gcc -L. -lttsapi ttssample.o -o ttsample
, и я получаю следующее сообщение об ошибке ...
ttssample.o: In function `_TTSFile':
ttssample.c:(.text+0x352): undefined reference to `TTSRequestFile'
ttssample.o: In function `_TTSFileEx':
ttssample.c:(.text+0x5e0): undefined reference to `TTSRequestFileEx'
ttssample.o: In function `_TTSBuffer':
ttssample.c:(.text+0x833): undefined reference to `_TTSRequestBuffer'
ttssample.o: In function `_TTSBufferEx':
ttssample.c:(.text+0xabd): undefined reference to `_TTSRequestBufferEx'
ttssample.o: In function `_TTSBuffering_cont':
ttssample.c:(.text+0xcbf): undefined reference to `_TTSRequestBuffer'
ttssample.o: In function `_TTSBuffering_stop':
ttssample.c:(.text+0xf2d): undefined reference to `_TTSRequestBuffer'
ttssample.o: In function `_TTSBuffering_SSML':
ttssample.c:(.text+0x122b): undefined reference to `_TTSRequestBufferSSMLEx'
ttssample.o: In function `_TTSStatus':
ttssample.c:(.text+0x157b): undefined reference to `TTSRequestStatus'
collect2: ld returned 1 exit status
и TTSRequestFile находится в Lib головой, но он имеет DllExport на фронт его, который мне интересно, является причиной моей ошибки? Любая помощь очень ценится.
DllExport int TTSRequestFile(char *szServer, int nPort, char *pText, int nTextLen, char *szSaveDir, char *szSaveFile, int nSpeakerID, int nVoiceFormat);
Это сработало спасибо !!! – JLB
Любая идея, почему это приведет к ошибке при запуске исполняемого файла? ошибка при загрузке разделяемых библиотек: -melf_x86_64: невозможно открыть файл общих объектов: нет такого файла или каталога – JLB
@JLB Поскольку библиотека не находится в каталоге, который по умолчанию запускался загрузчиком. Вам нужно будет поместить библиотеку в искомый каталог (например,/usr/local/lib) или экспортировать переменную среды LD_LIBRARY_PATH, чтобы включить каталог, в котором находится библиотека (например, LD_LIBRARY_PATH = "/ home/me/mylib), или вы бы связали свою программу с помощью rpath, указывающего на каталог, в котором находится lib, или используйте функцию $ ORIGIN для rpath, чтобы всегда искать lib в каталоге с относительным путем к пути исполняемого файла. Найдите Google для «rpath origin», чтобы узнать больше об этом. –