Tôi chưa bao giờ nghe nói về CUDA trước đó, nhưng từ tài liệu trực tuyến có vẻ như nếu X.cu là vụ phải được biên dịch vào Xô, vì vậy có helloWorld.cu và HelloWorld. cpp không phải là một ý tưởng hay. Với sự cho phép của bạn tôi sẽ đổi tên "hạt nhân" helloKernel.cu, sau đó điều này sẽ làm việc:
NVCC = nvcc
helloWorld.o: helloWorld.cpp helloWorld.h
$(NVCC) -c %< -o [email protected]
helloKernel.o: helloKernel.cu
$(NVCC) -c %< -o [email protected]
helloWorld: helloWorld.o helloKernel.o
$(NVCC) %^ -o [email protected]
(. Lưu ý rằng những không gian hàng đầu là tab)
Nếu thành công, hãy thử một phiên bản tinh quái:
NVCC = nvcc
helloWorld.o: %.o : %.cpp %.h
helloKernel.o: %.o : %.cu
%.o:
$(NVCC) -c %< -o [email protected]
helloWorld: helloWorld.o helloKernel.o
$(NVCC) %^ -o [email protected]
Xin vui lòng, thẻ câu hỏi make-liên quan của bạn với [làm cho] thẻ. Lý do: http://meta.stackexchange.com/questions/24030/why-do-they-specify-makefile-tag-instead-of-make/26567#26567 –