Debian OSがインストールされているNXP(Freescale)imx6の "C"アプリケーションを作成しようとしています。私のホストマシンはUbuntu 16.04です。私はIDEとしてEclipseを使用しており、今日までコンパイルすることができます。コンパイラにはarm-linux-gnueabihf-gcc
、リンカにはarm-linux-gnueabihf-ld
を使用します。リンカーパラメーターに-lasound
オプションを追加しましたが、アプリケーションをビルドできません。私は私のUbuntu(ホスト)マシン上でlibasound.so
ファイルを持っていないと私のリンカが「couldn考える-lasoundARMのためのALSAライブラリとクロスコンパイル
を見つけることができません:私は腕のlinux-gnueabihf-LD
エラーが出ます私のアプリケーションにライブラリへのリンク。
libasound.so
ファイルを自分のARMマシンからホストマシンの/home/user/Downloads
フォルダにコピーしましたが、まだコンパイルできませんでした。ビルド前にクロスコンパイルプロジェクトでALSAライブラリを使用する手順はありますか?ここで
は、あなたが(-static
経由)静的リンクを頼むが、そうld
、おそらく(あなたが-Wl,--verbose
で実行できることを確認する)を無視共有ライブラリを提供し、ビルド操作の出力Building target: tihc_linux_application Invoking: GCC C Linker /usr/bin/arm-linux-gnueabihf-ld -static -L/home/user/Downloads -pthread -lasound -o "main" ./src/main.o /usr/bin/arm-linux-gnueabihf-ld: mode armelf_linux_eabi /usr/bin/arm-linux-gnueabihf-ld: cannot find -lasound
私は静的フラグを削除し、詳細フラグを追加しました。これらの変更の後、前述のように、リンカーは共有オブジェクトファイルを見つけましたが、今回は別のエラーが発生しました。 '' /usr/arm-linux-gnueabihf/lib/libc.so.6:シンボルを追加する際にエラーが発生しました:コマンドラインからDSOが見つかりませんでした。 ' –
@BlackGlix [strange-linking-error-dso-from-command- line](http://stackoverflow.com/questions/19901934/strange-linking-error-dso-missing-from-commandline)を参照してください。 TLDR - オブジェクトファイルをコマンドラインの先頭に移動し、最後にlibsを移動します。 – yugr