C++ C++;11用叮当声编译++;

C++ C++;11用叮当声编译++;,c++,c++11,clang++,C++,C++11,Clang++,我想在大型数据集上运行我的代码。希望我能访问10个以上内核和64G内存的大型服务器 我的问题是这些服务器只有GCC4.6.3。 由于我的代码是c++11,我需要另一个编译器。。。希望能提供clang3.0 在我的笔记本电脑上,我用 g++ -pipe -march=native -std=c++11 -pedantic -Wall -Wextra -Werror -O3 但是,如果我尝试使用clang++和 clang++ -std=c++11 -O3 我犯了一些奇怪的错误: /usr/in

我想在大型数据集上运行我的代码。希望我能访问10个以上内核和64G内存的大型服务器

我的问题是这些服务器只有
GCC4.6.3
。 由于我的代码是
c++11
,我需要另一个编译器。。。希望能提供
clang3.0

在我的笔记本电脑上,我用

g++ -pipe -march=native -std=c++11 -pedantic -Wall -Wextra -Werror -O3
但是,如果我尝试使用
clang++

clang++ -std=c++11 -O3
我犯了一些奇怪的错误:

/usr/include/c++/4.6/chrono:666:7: error: static_assert expression is not an integral constant expression
      static_assert(system_clock::duration::min()

include/hierarchie/octree.hh:64:146: error: use of undeclared identifier 'pt'
  ...end,          [mid](const geometry::physpoint3D& pt){ return pt.z() < mid.z(); } );
/usr/include/c++/4.6/chrono:666:7:错误:静态断言表达式不是整型常量表达式
静态断言(系统时钟::持续时间::分钟()
include/hierarchy/octree.hh:64:146:错误:使用未声明的标识符“pt”
…end,[mid](常量几何体::physpoint3D&pt){return pt.z()

怎么了?我是否应该对代码进行任何修改以“适应”clang?

您使用的是什么版本的clang?它似乎不支持C++11。例如,clang 3.0中不支持lambda表达式,请参见您的clang似乎使用libstdc++头。由于gcc已经过时,所以它的libstdc++头也已经过时。如果这些标题中有问题已经修复,我也不会感到惊讶。它是clang3.0-6(我没有根访问权限的ubuntu机器),只需在其他地方用-static libstdc++编译应用程序,无需在目标计算机上编译。代码使用openmp。如果lib的路径不同,这不是一个问题吗?