1
ターゲットシステムでのみ利用可能な共有ライブラリにリンクする方法はありますが、クロスコンパイルに使用するシステムにはリンクできませんか?私は、ターゲットシステム上の共有ライブラリにリンクされている別の共有ライブラリをコンパイルする必要があります。クロスコンパイル:ターゲットシステムでのみ利用可能なライブラリへのリンク
私のソースコードディレクトリには、関数宣言を含むヘッダファイルを含むインクルードディレクトリがあります。
arm-linux-gnueabi-g++ -Wall -fPIC -I include/ -c mysource1.cpp
arm-linux-gnueabi-g++ -Wall -fPIC -I include/ -c mysource2.cpp
この状態では、エラーや警告はありません。次のコマンド
arm-linux-gnueabi-g++ -shared -fPIC -rdynamic mysource1.o mysource2.o -L /usr/lib/libtargetsys_shlib.so -Wl,-z,defs -o another_shared_lib.so
は、次のエラーが報告されます
mysource2.o: In function `my_func_2':
mysource2.cpp:(.text+0xe): undefined reference to `share_lib_func'
shared_lib_funcは、ターゲット・システムの共有ライブラリに存在しています。
はい、私は、開発システム上にライブラリを全く持たずにリンクを行う方法があるのだろうかと思っていました。しかし、私はそうではないと思います。 – jabe