我必须在我的项目中关注两个文件:
home/cuda_compilation_test/
main.cpp
libcudatest.cu
cuda_compilation_test.pro
我正在使用QtCreator和qmake进行编译。但是,当我使用下面显示的项目文件构建项目时,我收到链接错误文件格式无法识别;作为链接描述文件处理。 尽管如此,它仍然在调试目录中生成两个目标文件
home/build-cuda_compilation_test-Desktop-Debug/
main.o
libcudatest.o
我怎么能
进一步参考,这是编译器输出
g++ -m64 -o cuda_compilation_test_2 libcudatest.o main.o -L/usr/lib/x86_64-linux-gnu -L/usr/local/cuda/lib64 -lcudart -lcudatest -lQtGui -lQtCore -lpthread
/usr/bin/ld:libcudatest.o: file format not recognized; treating as linker script
/usr/bin/ld:libcudatest.o:1: syntax error
collect2: error: ld returned 1 exit status
make: *** [cuda_compilation_test_2] Error 1
11:19:20: The process "/usr/bin/make" exited with code 2.
和项目文件:
TEMPLATE =
# Files
SOURCES += main.cpp
OTHER_FILES += libcudatest.cu
LIBS += -L/usr/local/cuda/lib64
LIBS += -lcudart -lcudatest
# CUDA path
CUDA_DIR = /usr/local/cuda
CUDA_CC = $$CUDA_DIR/bin/nvcc
# CUDA Setup
CUDA_SOURCES = libcudatest.cu
NVCCINCLUDES +=
NVCCFLAGS = --shared -arch sm_35 -Xcompiler -fPIC --ptxas-options=-v
INCLUDEPATH +=
LIBS +=
# Configuration of the Cuda compiler
# http://doc.qt.io/qt-4.8/qmake-environment-reference.html#customizing
CONFIG(debug, debug|release) {
# Debug mode
cuda_d.input = CUDA_SOURCES
cuda_d.output = ${QMAKE_FILE_BASE}.o
cuda_d.commands = $$CUDA_CC -D_DEBUG $$NVCCFLAGS $$NVCCINCLUDES $$LIBS -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
cuda_d.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda_d
}
else {
# Release mode
cuda.input = CUDA_SOURCES
cuda.output = ${QMAKE_FILE_BASE}.o
cuda.commands = $$CUDA_CC $$NVCCFLAGS $$NVCCINCLUDES $$LIBS -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_NAME}
cuda.dependency_type = TYPE_C
QMAKE_EXTRA_COMPILERS += cuda
}
我正在尝试在linux上编译。
非常感谢您对此主题的任何帮助。