linux下cuda编译环境qt,没有规则可以制作目标Cuda + Qt + Linux(示例代码)

尝试编译qt + cuda + linux并得到此错误“没有规则来制作目标'cuda_code.o',需要'../Test/Obj/cuda_code_cuda.o'。停止。”,但我会一步一步地做所有事情以下说明只是无法理解是什么错。我使用Ubuntu 18.10,Cuda编译工具V10.1.105和QT Creator 4.8.1。

main.cpp中

#include

#include

using namespace std;

// the next 'include' is for CUDA error checks

#include

// This is the 'elder trick of the...' - Tell the compiler this function is defined in other place

extern "C"

cudaError_t cuda_main();

int main(int argc, char *argv[])

{

QCoreApplication a(argc, argv);

// run your cuda application

cudaError_t cuerr = cuda_main();

// check for errors is always a good practice!

if (cuerr != cudaSuccess) cout << "CUDA Error: " << cudaGetErrorString( cuerr ) << endl;

return a.exec();

}

粗大_code.粗

#include

#include

#include

extern "C"

cudaError_t cuda_main()

{

// generate 16M random numbers on the host

thrust::host_vector h_vec(1 << 24);

thrust::generate(h_vec.begin(), h_vec.end(), rand);

// transfer data to the device

thrust::device_vector d_vec = h_vec;

// sort data on the device (805 Mkeys/sec on GeForce GTX 480)

thrust::sort(d_vec.begin(), d_vec.end());

// transfer data back to host

thrust::copy(d_vec.begin(), d_vec.end(), h_vec.begin());

return cudaGetLastError();

}

和Test.pro文件

QT += core

QT -= gui

TARGET = QtCuda

CONFIG += console

CONFIG -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

cuda_code.cu

SOURCES -= cuda_code.cu

DESTDIR = $$system(pwd)

OBJECTS_DIR = $$DESTDIR/Obj

QMAKE_CXXFLAGS_RELEASE =-O3

CUDA_SOURCES += cuda_code.cu

CUDA_DIR = /usr/local/cuda-10.1

INCLUDEPATH += $$CUDA_DIR/include

QMAKE_LIBDIR += $$CUDA_DIR/lib64

LIBS += -lcudart -lcuda

CUDA_ARCH = sm_52

NVCCFLAGS = --compiler-options -fno-strict-aliasing -use_fast_math --ptxas-options=-v

CUDA_INC = $$join(INCLUDEPATH,' -I','-I',' ')

cuda.commands = $$CUDA_DIR/bin/nvcc -m64 -O3 -arch=$$CUDA_ARCH -c $$NVCCFLAGS

$$CUDA_INC $$LIBS ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_OUT}

2>&1 | sed -r "s/\(([0-9]+)\)/:\1/g" 1>&2

cuda.dependency_type = TYPE_C

cuda.depend_command = $$CUDA_DIR/bin/nvcc -O3 -M $$CUDA_INC $$NVCCFLAGS ${QMAKE_FILE_NAME}

cuda.input = CUDA_SOURCES

cuda.output = ${OBJECTS_DIR}${QMAKE_FILE_BASE}_cuda.o

QMAKE_EXTRA_COMPILERS += cuda

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值