質問: 共有ライブラリの内容確認について linuxでプログラミングをしております。 /usr/loca/libの静的、動的ライブラリを使用したいと思っているのですが、32bit,64bitが混在しており、どれを使えば良いのかわからない状況です。 ライブラリをコンパイルした環境(コンパイラなど)を確認する方法はありますでしょうか? ご存知の方おられましたらご教授よろしくお願いします。
回答: objdump コマンドを使えば、32bit と 64bit の判別は可能です。 $ objdump -a /usr/lib/libpng.so.3 /usr/lib/libpng.so.3: file format elf32-i386 /usr/lib/libpng.so.3 $ objdump -a /usr/lib64/libpng.so.3 /usr/lib64/libpng.so.3: file format elf64-x86-64 /usr/lib64/libpng.so.3 readelf コマンドでも判別できます。 $ readelf -h /usr/lib/libpng.so.3 elf header: class: elf32 machine: intel 80386 $ readelf -h /usr/lib64/libpng.so.3 elf header: class: elf64 machine: advanced micro devices x86-64