Gccにcuda_runtime.hの/ usr/cuda/local/includeを検索させるにはどうすればよいですか?
CラッパーでCUDAアプリケーションをコンパイルしようとしています。 Ubuntu 10.04を実行しています。
次のコマンドを使用して、CUDAアプリケーションを.soに正常にコンパイルしました。
nvcc -Arch=sm_11 -o libtest.so --shared -Xcompiler -fPIC main.cu
次のコマンドでcラッパーファイルをコンパイルしようとすると、
gcc -std=c99 -o main -L. -ltest main.c
私はエラーを受け取ります:
error: cuda_runtime.h: No such file or directory
Cuda_runtime.hが実際には/ usr/local/cuda/includeにあることを確認しました
-Iスイッチを使用すると、gccはcuda_runtime.hファイルを見つけることができます。
gcc -std=c99 -I/usr/local/cuda/include -o main -L. -ltest main.c
CMakeを使用している場合
find_package(CUDA REQUIRED)
include_directories("${CUDA_INCLUDE_DIRS}")
追加 -isystem /usr/local/cuda-8.0/include
からflags.makeファイルのCXX_INCLUDESに。
私たちはCMakeを使用していましたが、それでもヘッダーファイルを見つけることができませんでした(おそらく、ディレクトリを見つけられなかったのはCMakeのバージョン./targets/x86_64-linux/include
または複数のCUDAバージョンがあるため)。設定 CPATH
およびLD_LIBRARY_PATH
修正しました:
export CPATH=/usr/local/cuda-10.1/targets/x86_64-linux/include:$CPATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.1/targets/x86_64-linux/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-10.1/bin:$PATH