我有一个使用 Google Test 的 C++11 项目,它在 Linux 中构建得很好。在 Mac 上,我很难将它集成到我的代码库中。问题似乎是,虽然我的代码使用 C++11,但 Google 代码使用 TR1。因此,TR 数据结构的相似性enum
和unordered_set
包含方式不同。
Google 测试示例按照提供的方式完美构建和运行。如果我使用 clang++ 而不是 g++,这些示例也可以构建得很好。(我的代码仅适用于 clang++,所以我使用它来构建。)最后,如果我使用-std=c++11
.
但是,如果我使用-stdlib=libc++
. 它报告它找不到 tr1/tuple,这当然是真的。这是一个问题,因为如果我使用(或没有参数) ,我的代码不会构建。-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”。(是的,我已经那么老了。)