我需要將庫(portaudio)鏈接爲靜態庫。當我這樣做無法將portaudio庫鏈接爲靜態庫
arm-none-linux-gnueabi-gcc -static -L/media/Data/lib/.libs -lportaudio prova.cpp
連接失敗告訴我
/tmp/ccuoQi1J.o: In function `main':
prova.cpp:(.text+0x190): undefined reference to `Pa_Initialize'
prova.cpp:(.text+0x1bc): undefined reference to `Pa_GetDeviceCount'
prova.cpp:(.text+0x1d8): undefined reference to `Pa_GetDeviceInfo'
prova.cpp:(.text+0x248): undefined reference to `Pa_OpenDefaultStream'
prova.cpp:(.text+0x27c): undefined reference to `Pa_CloseStream'
prova.cpp:(.text+0x280): undefined reference to `Pa_Terminate'
collect2: ld returned 1 exit status
同時,沒有-static選項,聯沒有給出錯誤
arm-none-linux-gnueabi-g++ -L/media/Data/lib/.libs -lportaudio prova.cpp
我需要靜態鏈接庫所有,是有可能嗎?
我想靜態鏈接共享庫,因爲我不想將其安裝在目標系統中;這是因爲文件系統不是持久的,我將不得不在每次啓動時安裝庫。我不知道是否可以完成,也許我必須建立圖書館到一個靜態版本。 – gc5 2012-04-07 15:57:10
我試過以下沒有結果: 'arm-none-linux-gnueabi-gcc -Wall -static -I ../ portaudio/include ../portaudio/lib/.libs/libportaudio.a prova.cpp ' 和 'arm-none-linux-gnueabi-gcc -Wall -static -I ../ portaudio/include -L ../ portaudio/lib/.libs -lportaudio prova.cpp' 。 擴展名爲.a的庫位於目錄「../portaudio/lib/.libs」 – gc5 2012-04-11 13:27:48
現在我以這種方式鏈接:'/ home/francesco/Dropbox/poli/bi/not/ip/cross/arm -2007q3/bin/arm-none-linux-gnueabi-gcc -Wall -static -I/home/francesco/Dropbox/poli/bi/not/ip/portaudio/include -L/home/francesco/Dropbox/poli/bi /not/ip/portaudio/lib/.libs prova.cpp'。 portaudio/lib/.libs的內容爲'file ../portaudio/lib/.libs/* ../portaudio/lib/.libs/libportaudio.a:current ar archive ../portaudio/lib/.libs /libportaudio.la:符號鏈接到'../libportaudio.la' ../portaudio/lib/.libs/libportaudio.lai:libtool庫文件 '。順便說一句,我得到了同樣的結果:| – gc5 2012-04-11 13:44:17