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.c で呼び出している cuda_md5_cpu.c の関数を見つけることができないようです (PS: cuda_md5.c に cuda_md5_cpu.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 に変更しました。