スタティックライブラリとしてライブラリ(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オプションを使用せずに、リンクは
私は静的にすべてのLIBSをリンクする必要がありarm-none-linux-gnueabi-g++ -L/media/Data/lib/.libs -lportaudio prova.cpp
は、あるエラーを与えませんそれは可能ですか? gcc linking optionsから
ターゲットシステムにインストールしたくないので、その共有ライブラリを静的にリンクしたいと思っています。これはファイルシステムが永続的ではないため、私は毎回ライブラリをインストールする必要があります。私はそれができるかどうかわからない、多分静的なバージョンにライブラリを構築する必要があります。 – gc5
私は以下の結果を得ないで試しました: '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 -portaudio prova.cpp' です。 拡張子が.aのライブラリは "../portaudio/lib/.libs"ディレクトリにあります – gc5
これでリンクします: '/ 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:現在のアーカイブファイル ../portaudio/lib/.libs /libportaudio.la: '../libportaudio.la'へのシンボリックリンク ../portaudio/lib/.libs/libportaudio.lai:libtoolライブラリファイル '。ところで、私は同じ結果を得る:| – gc5