2

Google Test を使用する C++11 プロジェクトがあり、Linux でうまくビルドできます。Mac では、それを自分のコード ベースに統合するのがさらに難しくなっています。問題は、私のコードでは C++11 を使用しているのに、Google コードでは TR1 を使用しているようです。その結果、TR データ構造は類似enumunordered_setており、異なる方法で含まれています。

Google テスト サンプルは、提供されているとおりに完全にビルドおよび実行されます。g++ の代わりに clang++ を使用すると、サンプルも問題なくビルドされます。(私のコードは clang++ でしか動作しないので、それを使用してビルドします。) 最後に、Google のコードもビルドして実行します-std=c++11

ただし、Google のテストでは、Mac で clang++ を使用してビルドしませ-stdlib=libc++。もちろん、これは本当です。これは問題です。使用すると(または引数なしで)コードがビルドされないためです-stdlib=libstdc++stdlib

もちろん、すべてのコードを古い標準に切り替えることもできます。ただし、これは非常に厄介です。これらのコード ベースを Mac 上で共存させる方法はありますか?

私のコードは、Ubuntu 12.04 コンピューターで g++ 4.6.3 を使用して Google テストで問題なくビルドされます。MacはOSX 10.8.3を実行しています。g++ 4.2.1 と clang 4.2++ を実行しています。

助けてくれてありがとう、デビッド

PS: 私は C++ に少し慣れていないので、これがばかげた質問である場合はご容赦ください。

編集:「OS/X」を「OSX」に変更。(はい、私はその年です。)

4

1 に答える 1