Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)環境にて
提供された共有ライブラリ(ITest.h libTest.so)を使用したプログラムをコンパイルする際に
/usr/bin/ld: skipping incompatible ./lib/libTest.so when searching for -lTest /usr/bin/ld: cannot find -lTest collect2: error: ld returned 1 exit status
このような感じで互換性がないと怒られます。
soは32bitのもののようで、環境が64bitであることから-m32を指定してコンパイル等を試しましたが
どうしても同じエラーになります。
試しに自分で32bitのsoファイルを作成したところ、特に問題なくコンパイル/実行出来ました。
そこで提供されたライブラリ自体を疑い始めています。
試しにobjdump -aしたところ、
自前のso :elf32-i386
提供されたso:elf32-little
このような結果となりました。
同一環境で32bitの共有ライブラリ(soファイル)を作成してファイルフォーマットが
異なるなんてことがあるものか、ここをまず詳しいかたにお尋ねしたいところです。
皆様のお知恵をおかしください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/03/06 11:36
退会済みユーザー
2016/04/25 12:27