使用gcc编译cuda导致:错误:'threadIdx'未声明

时间:2012-11-01 15:19:33

标签: c gcc cuda gpgpu nvcc

如何强制GCC在我的代码中使用threadIdx行编译?

我试图用c包装器编译我的cuda应用程序。

要生成我运行的.so文件: nvcc -arch = sm_11 -o libtest.so --shared -Xcompiler -fPIC main.cu

然后我尝试用以下代码编译c包装器: gcc -std = c99 -I / usr / local / cuda / include -o main -L。 -ltest main.c

这导致我的代码中的几层下面出现以下错误(包含到包含的文件中): 错误:'threadIdx'未声明

注意:所有内容都可以编译并在没有任何C包装的情况下作为GPU应用程序运行。

1 个答案:

答案 0 :(得分:1)

Gcc无法编译代码的cuda部分。你需要nvcc来编译代码。当遇到threadIdx时,gcc不知道该怎么做。