Я хочу автоматизировать сборку библиотеки игрушек с использованием CUDA и C++. Тогда я пишу Makefile следующимСоздание make-файла для программ CUDA
CC=g++
NVCC=nvcc
CXXFLAGS= -fopenmp -O3 -Wextra -std=c++11
CUDAFLAGS= -std=c++11 -c -arch=sm_20
LIBS= -lopenblas -lpthread -lcudart -lcublas
LIBDIRS=-L/usr/local/cuda-7.5/lib64
INCDIRS=-I/usr/local/cuda-7.5/include
matrix_cuda.o: marix_cuda.cu
$(NVCC) $(CUDAFLAGS) matrix_cuda.cu
all: matrix_cuda.o
$(CC) -o test matrix_blas.cpp alg.cpp test.cpp matrix_cuda.o $(LIBDIRS) $(INCDIRS) $(LIBS) $(CXXFLAGS)
clean:
rm -rf test *.o
Typing make
Я получаю
make: *** No rule to make target `marix_cuda.cu', needed by `matrix_cuda.o'. Stop.
Я никогда не писал Makefile раньше. Где я неправ?
Как вы построите библиотеку с помощью командной строки без Make? – Beta
'nvcc -std = C++ 11 -c -arch = sm_20 matrix_cuda.cu', а затем' g ++ -o test matrix_blas.cpp alg.cpp test.cpp matrix_cuda.o -L/usr/local/cuda-7.5/lib64 -I/usr/local/cuda-7.5/include -lopenblas -lpthread -lcudart -lcublas -fopenmp -O3 -Wextra -std = C++ 11' – pateheo