我正在尝试在Linux中编译一个CUDA程序,但是出现了以下链接错误:
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
这是我的 Makefile 文件:
mtrand.o : mtrand/mtrand.cpp
nvcc -I"./mtrand" -O2 -c mtrand/mtrand.cpp
CUDAMCMLrng.o : CUDAMCMLrng.cu
nvcc --use_fast_math -O2 -c CUDAMCMLrng.cu
kernel.o : CUDAMCMLrng.o kernel.cu
nvcc --use_fast_math -O2 -c kernel.cu
main.o : mtrand.o CUDAMCMLrng.o kernel.o main.cu
nvcc --use_fast_math -O2 -Xcompiler "-fopenmp -Wall" -c main.cu
lab : main.o mtrand.o CUDAMCMLrng.o kernel.o
nvcc -lgomp -o lab main.o mtrand.o CUDAMCMLrng.o kernel.o
main
函数在main.cu文件中,但某种原因链接器没有找到它。
请问有人能告诉我我做错了什么吗?谢谢!
binutils
的objdump
能否处理这些目标文件,还是NVIDIA提供了一个? - Brian Cain