简单的CUDA项目Netbeans链接问题

时间:2013-03-09 21:33:52

标签: netbeans cuda

当我取消选中NetBeans IDE中的启用依赖关系检查时(请参阅this issue),IDE现在使用nvcc并将我的.cu编译为.o但它根本不进行链接:

  

“/ usr / bin / make”-f nbproject / Makefile-Debug.mk QMAKE = SUBPROJECTS =   .build-conf make 1:输入目录   /me/NetBeansProjects/my_CUDA_1' "/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/libmy_cuda_1.a make[2]: Entering directory / me / NetBeansProjects / my_CUDA_1'mkdir   -p build / Debug / GNU-Linux-x86 /usr/local/cuda-5.0/bin/nvcc -c -g -I / usr / local / cuda-5.0 / include -I / usr / local / cuda-5.0 / samples / common / inc -o build / Debug / GNU-Linux-x86 / cudaMain.o cudaMain.cu mkdir -p dist / Debug / GNU-Linux-x86 rm -f dist / Debug / GNU-Linux-x86 / libmy_cuda_1。一个   ar -rv dist / Debug / GNU-Linux-x86 / libmy_cuda_1.a   ar / debug / GNU-Linux-x86 / cudaMain.o ar:创建   dist / Debug / GNU-Linux-x86 / libmy_cuda_1.a a -   build / Debug / GNU-Linux-x86 / cudaMain.o ranlib   dist / Debug / GNU-Linux-x86 / libmy_cuda_1.a make [2]:离开目录   /me/NetBeansProjects/my_CUDA_1' make[1]: Leaving directory / ME /的NetBeansProjects / my_CUDA_1'

     

建立成功(总时间:2s)

我可以从终端链接:

  

comp @ comp:#ls
  cudaMain.o

     

comp @ comp:#g ++ -m64 -o cudaMain cudaMain.o -L / usr / local / cuda-5.0 / lib64 -lcudart   比较@补偿:#/ cudaMain   排版@排版:/ ME /的NetBeansProjects / my_CUDA_1 /建造/调试/ GNU Linux的86#

我认为这与它不检查make依赖(?)这一事实有关 在IDE中检查/取消选中/删除/添加/更改以启用链接的内容是什么? 我不知道为什么,但没有与Projects-> Properties中的链接相关的选项。

编辑:

此刻我解决了所有要安装的问题(使用Soroosh帮助,再次感谢)Ubuntu 12.10上的CUDA-5.0(并使用“NVIDIA二进制Xorg驱动程序,内核模块和来自nvidia-current的VDPAU库”驱动程序 - 只有这给了我额外的图形/分辨率)并使用Netbeans ALL示例项目编译并编译和运行我自己的。 如果有任何问题,请询问

enter image description here

1 个答案:

答案 0 :(得分:1)

我在配置类型之前更改为静态库并且它是错误的:应该是应用程序,然后链接是可能的。我必须将Ide中的Run命令从调试位置更改为:

  

DIST /调试/ GNU Linux的86 / my_cuda_1

并使用GNU工具集合。 现在没关系。它构建.o然后与libcudart.so链接以创建可执行文件:

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .clean-conf
make[1]: Entering directory `/me/NetBeansProjects/my_CUDA_1'
rm -f -r build/Debug
rm -f dist/Debug/GNU-Linux-x86/my_cuda_1
make[1]: Leaving directory `/me/NetBeansProjects/my_CUDA_1'


CLEAN SUCCESSFUL (total time: 113ms)

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/me/NetBeansProjects/my_CUDA_1'
"/usr/bin/make"  -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/my_cuda_1
make[2]: Entering directory `/me/NetBeansProjects/my_CUDA_1'
mkdir -p build/Debug/GNU-Linux-x86
/usr/local/cuda-5.0/bin/nvcc    -c -g -I/usr/local/cuda-5.0/include -I/usr/local/cuda-5.0/samples/common/inc -o build/Debug/GNU-Linux-x86/cudaMain.o cudaMain.cu
mkdir -p dist/Debug/GNU-Linux-x86
/usr/local/cuda-5.0/bin/nvcc     -o dist/Debug/GNU-Linux-x86/my_cuda_1 build/Debug/GNU-Linux-x86/cudaMain.o -lcudart 
make[2]: Leaving directory `/me/NetBeansProjects/my_CUDA_1'
make[1]: Leaving directory `/me/NetBeansProjects/my_CUDA_1'


BUILD SUCCESSFUL (total time: 2s)
  

CUDA时钟示例GPU设备0:带有计算功能的“GeForce GT 630”   能力2.1

     

总时钟= 52926

     

RUN SUCCESSFUL(总时间:151ms)