我正在尝试使用nvcc 5.5.0在我的GPU上编译第三方库,但我在STL中不断收到编译错误。我已将其跟踪到库使用GCC并行标头。具体来说,这是导致编译问题的最小示例:
#include <parallel/algorithm>
这与gcc -c
编译良好,但当我nvcc -c
时,我得到编译错误,如:
/usr/include/c++/4.8/tr1/cmath(318): error: expected an identifier
我是否正在隐藏任何尝试获取引用OpenMP以使用nvcc编译的代码?请原谅我,如果这是显而易见的,但我是CUDA的新手。我正在使用gcc 4.8.2。
答案 0 :(得分:1)
新的CUDA 6.5 RC工具包offers experimental support用于某些c ++ 11功能。
在Fedora20 / gcc 4.8.2,CUDA 6.5RC上,我能够成功编译以下代码。
t1.cu:
#include <math.h>
#include <parallel/algorithm>
int main(){
}
使用
nvcc -std=c++11 -arch=sm_20 t1.cu -o t1
如果仅包含math.h
修复此问题,您可以检入自己的设置。如果没有,继续前进到CUDA 6.5可能是值得的。