13

ライブラリが Mac で libc++ または libstdc++ でビルドされているかどうかを確認するにはどうすればよいですか?

otool -L を使用していますが、これは表示されないようです (mac には ldd がありません)。

ライブラリ X がある場合、GCC から clang に移行するときに再構築する必要があるかどうかを知りたいです。私はGCCで多くのライブラリを構築しました.Macライブラリは一般的にclang AFAIKで構築されています.

4

2 に答える 2

8

静的ライブラリ:nm -a helloworld.a | grep __1

__1たとえばを含む行が表示__121__basic_stringされた場合、ライブラリは libc++ でコンパイルされています。ただし、C++ 標準ライブラリ型を使用する関数シグネチャがない場合、これは機能しない可能性があります。

動的ライブラリ:otool -L helloworld

libc++ または libstdc++ dylib への依存関係を探します。

于 2015-06-19T01:53:57.757 に答える
3

ダイナミックライブラリの場合、それがそのライブラリに対して構築されているかどうか(つまり、C ++であるかどうか)otool -Lを示します。libstdc++

静的ライブラリの場合、この質問は意味がありません。静的ライブラリは、他のライブラリに対して構築されていません。

また、コンパイラを変更しているという理由だけで、何も再構築する必要はありません。システム全体のC++ライブラリは1つだけで、安定したABIがあります。

于 2012-06-16T15:12:38.267 に答える