1

当我在 NetBeans IDE 中取消选中 Enable Make Dependency Checking(请参阅此问题)时,现在 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.a ar -rv dist/Debug/GNU-Linux- x86/libmy_cuda_1.a build/Debug/GNU-Linux-x86/cudaMain.o ar: 创建 dist/Debug/GNU-Linux-x86/libmy_cuda_1.aa - 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 comp@comp:#./cudaMain comp@comp:/me/NetBeansProjects/my_CUDA_1/build/Debug /GNU-Linux-x86#

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

编辑:

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

在此处输入图像描述

4

1 回答 1

1

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

dist/调试/GNU-Linux-x86/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:具有计算能力 2.1 的“GeForce GT 630”

总时钟 = 52926

运行成功(总时间:151ms)

于 2013-03-09T22:34:50.387 回答