Я преобразовал код C++ в C, и теперь я также пытаюсь изменить Makefile. У меня было это:
g++ -fPIC -o bin/linux/release/gpu_md5 cuda_md5.c cuda_md5_cpu.c obj/release/cuda_md5_gpu.cu.o
-L/usr/local/cuda/lib64 -L../../lib64
-L../../common/lib64/linux -L/opt/cuda/NVIDIA_CUDA_SDK/lib64 -lcudart
-L/usr/local/cuda/lib64 -L../../lib64
-L../../common/lib64/linux -L/opt/cuda/NVIDIA_CUDA_SDK/lib64
Насколько я знаю, я мог бы просто изменить g++ на gcc, и он должен работать хорошо, но это не так. Похоже, gcc не может найти функции из cuda_md5_cpu.c, которые я вызываю в cuda_md5.c (PS: я не включаю cuda_md5_cpu.c в cuda_md5.c):
/tmp/ccKdDJiq.o: In function `cuda_compute_md5s':
cuda_md5.c:(.text+0x201): undefined reference to `init_constants'
cuda_md5.c:(.text+0x2e2): undefined reference to `execute_kernel'
collect2: ld returned 1 exit status
Что не так? Я только что перешел с g++ на gcc.