makefile para compilar o código opencv e cuda

0

Estou com problemas para compilar meu código de operação e código no ubuntu. Estou executando cuda-8.0, opencv-3.1.0 e Ubuntu 16.04 LTS. Eu usei o seguinte arquivo make para compilar meu código:

    CXX=g++
    CUDA_INSTALL_PATH=/usr/local/cuda-8.0
    CFLAGS= -I. -I$(CUDA_INSTALL_PATH)/include 'pkg-config --cflags opencv'
    LDFLAGS= -L$(CUDA_INSTALL_PATH)/lib -L usr/local/cuda/lib64/libcudart.so 'pkg-config --libs opencv'


     #EMU=-deviceemu

     ifdef EMU
     CUDAFLAGS+=-deviceemu
     endif

     all:
     $(CXX) $(CFLAGS) -c main.cpp -o Debug/main.o
     nvcc $(CUDAFLAGS) -c kernel_gpu.cu -o Debug/kernel_gpu.o
     $(CXX) Debug/main.o 'pkg-config --libs opencv' -L usr/local/cuda/lib64/libcudart.so  Debug/kernel_gpu.o -o Debug/grayscale

     clean:
     rm -f Debug/*.o Debug/grayscale        

Ao executar o makefile acima, recebo os seguintes erros:

    /usr/bin/ld: Debug/main.o: undefined reference to symbol 'cudaMalloc'
    //usr/local/cuda/lib64/libcudart.so.8.0: error adding symbols: DSO missing from command line.

Eu também tentei usar -lcudart em vez de libcudart.so nos códigos acima. Mas durante a compilação há um erro dizendo que -lcudart não pode ser encontrado.

Eu tenho tentado compilar este makefile por um bom tempo. Eu não sei mais o que tentar. Qualquer ajuda seria muito apreciada.

    
por tanwir 15.01.2017 / 05:49

0 respostas