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.