Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cuda独立汇编“;“未定义的方法”;_C_Cuda_Nvcc_Object Files - Fatal编程技术网

cuda独立汇编“;“未定义的方法”;

cuda独立汇编“;“未定义的方法”;,c,cuda,nvcc,object-files,C,Cuda,Nvcc,Object Files,我在使用cuda c进行单独编译时遇到问题。 我有两个文件。nsim.cu和methods.cu 在methods.cu文件中,我有所有的内核函数“\uu\u global\uu” 我的nsim.cu调用这些函数。我的问题是,当试图调用对象文件中的方法时,我得到一个 error : "identifier "MyMethod" is undefined" 以下是我如何使用nvcc: NVCC= /usr/local/cuda-5.5/bin/nvcc NVCCFLAGS= -arch=sm_3

我在使用cuda c进行单独编译时遇到问题。 我有两个文件。nsim.cu和methods.cu

在methods.cu文件中,我有所有的内核函数“\uu\u global\uu” 我的nsim.cu调用这些函数。我的问题是,当试图调用对象文件中的方法时,我得到一个

error : "identifier "MyMethod" is undefined"
以下是我如何使用nvcc:

NVCC= /usr/local/cuda-5.5/bin/nvcc
NVCCFLAGS= -arch=sm_35 -dc
LIBS= -lglut -lGL -lcurand
OBJECTS = nsim.o methods.o

go:
    rm -f ${OBJECTS}
    ${NVCC} ${NVCCFLAGS} methods.cu ${LIBS}
    ${NVCC} ${NVCCFLAGS} nsim.cu ${LIBS}
    ${NVCC} ${NVCCFLAGS} ${OBJECTS} -o nsim
nsim.cu包含我的main方法,并且是编译时抛出错误的地方


谢谢你的任何意见

我通过将所有设备函数移动到单独的对象文件中,然后使用lcudadebrt库进行编译,解决了我的问题。我的新生成文件如下所示:

NVCC= /usr/local/cuda-5.5/bin/nvcc
NVCCFLAGS= -arch=sm_35 
LIBS= -lglut -lGL -lcurand -lcudadevrt
OBJECTS = nsim.o cuda0.o cuda1.o cuda2.o cuda3.o cuda4.o

go:
    rm -f ${OBJECTS}
    ${NVCC} ${NVCCFLAGS} -dc cuda0.cu ${LIBS}
    ${NVCC} ${NVCCFLAGS} -dc cuda1.cu ${LIBS}
    ${NVCC} ${NVCCFLAGS} -dc cuda2.cu ${LIBS}
    ${NVCC} ${NVCCFLAGS} -dc cuda3.cu ${LIBS}
    ${NVCC} ${NVCCFLAGS} -dc cuda4.cu ${LIBS}
    ${NVCC} ${NVCCFLAGS} -dc nsim.cu ${LIBS}
    ${NVCC} ${NVCCFLAGS} ${OBJECTS} -o nsim ${LIBS}