私は組み込み環境で働いています。ARMアーキテクチャ用のクロスコンパイラをeglibc
プライマリライブラリとして使用しています(つまり、デフォルトlibc
はツールチェーンに付属しています)。ここで、いくつかのアプリケーションをにリンクさせたいと思いますuClibc
。そこでuClibc
、そのツールチェーンを使用してコンパイルしました。アプリケーションをコンパイルしてリンクしようとしているuClibc
ときに、エラーが発生しました。ツールチェーンのデフォルトライブラリにリンクされています。同じマシン上に2つの異なるlibc(libc、uClibcなど)を置くことは可能だと思います。
ネットで検索して、以下が付属しました
-
それが示唆したように、私は次のことをしました
$arm-unknown-linux-gnueabi-gcc -c test.c -o TEST $arm-linux-gnueabi-gcc TEST -o dynamic_test_with_new_opts -Wl,rpath=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib -Wl,-dynamic-linker=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib/ld-uClibc.so.0
この場合、デフォルト
libc.so.6
のeglibc
-
上記のリンクが示唆しているように、私は次のことも試しました:
$arm-unknown-linux-gnueabi-gcc -Xlinker -rpath=/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib -Xlinker -I/home/user/UCLIBC/uClibc-0.9.32.1/INSTALL-DIR/usr/arm-linux-uclibc/lib/ld-uClibc-0.9.32.1.so test.c -o dynamic_test_with_linker_options
この場合も、デフォルト
libc.so.6
のeglibc
どこが間違っているのですか?私は本当にこれで立ち往生しています。誰かが光を当ててくれませんか?