Google Test を使用する C++11 プロジェクトがあり、Linux でうまくビルドできます。Mac では、それを自分のコード ベースに統合するのがさらに難しくなっています。問題は、私のコードでは C++11 を使用しているのに、Google コードでは TR1 を使用しているようです。その結果、TR データ構造は類似enum
しunordered_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」に変更。(はい、私はその年です。)