biegnę ..gcc niezdefiniowana odniesienia do
gcc -c -I/usr/vt/sample ttssample.c
gcc -L. -lttsapi ttssample.o -o ttsample
i dostaję następujący błąd ...
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
i TTSRequestFile jest w lib nagłówka, ale ma na dllexport przód tego, o który się zastanawiam, jest przyczyną mojego błędu? Każda pomoc doceniona.
DllExport int TTSRequestFile(char *szServer, int nPort, char *pText, int nTextLen, char *szSaveDir, char *szSaveFile, int nSpeakerID, int nVoiceFormat);
Udało się, dziękuję !!! – JLB
Czy są jakieś pomysły na błąd podczas uruchamiania pliku wykonywalnego? błąd podczas ładowania bibliotek współdzielonych: -melf_x86_64: nie można otworzyć pliku obiektu współdzielonego: brak takiego pliku lub katalogu – JLB
@JLB Ponieważ biblioteka nie znajduje się w katalogu przeszukiwanym domyślnie przez program ładujący środowisko wykonawcze. Musisz umieścić bibliotekę w przeszukiwanym katalogu (jak/usr/local/lib) lub wyeksportować zmienną środowiskową LD_LIBRARY_PATH, aby uwzględnić katalog, w którym znajduje się biblioteka (np. LD_LIBRARY_PATH = "/ home/me/mylib"), lub chciałbyś połączyć swój program za pomocą ścieżki rpath, która wskazuje katalog, w którym znajduje się biblioteka, lub użyć funkcji $ ORIGIN rpath, aby zawsze szukać biblioteki w katalogu o ścieżce względnej do pliku wykonywalnego. Wyszukaj w Google hasło "pochodzenia rpath", aby uzyskać więcej informacji na jego temat. –