我如何告诉 GCC 和 Clang 查看 /usr/local/cuda 中的 include/libs?

我如何告诉 GCC 和 Clang 查看 /usr/local/cuda 中的 include/libs?

我已经在我的系统上安装了 CUDA,但依赖它的库似乎找不到它的文件。我应该在 my 后面附加什么,.bashrc以便 GCC 和 Clang 都能查看目录/usr/local/cuda/include/usr/local/cuda/lib

答案1

GCC 和 Clang 驱动程序都遵循以下环境变量:

export C_INCLUDE_PATH=/usr/local/cuda/include
export CPLUS_INCLUDE_PATH=/usr/local/cuda/include
export LIBRARY_PATH=/usr/local/cuda/lib

检查手册。

答案2

你必须这样做:

gcc -I/path_of_include_files -L/path_of_load_libraries_files 

注意:您可以有一些-I-L 例如:

gcc -I. -L. -I../include -L../libs

答案3

两者gccclang尊重一些可以帮助实现您想要的目标的环境变量。尝试将这些添加到您的~/.bashrc

export CFLAGS="-I /usr/local/cuda/include"
export LDFLAGS="-L /usr/local/cuda/lib"

然而,这通常不是在全局级别上完成的 - 不同的项目需要不同的包含和库,因此最好在您的Makefile或使用./configure.

答案4

如果您有一个可用的pkgconfig,那么您可以使用它来添加适当的 GCC 标志:

$(pkg-config --cflags cuda) $(pkg-config --libs cuda)

例如:

gcc filename.c -o outputfile $(pkg-config --cflags --libs cuda) 

在 Makefile 中,通常如下所示:

CFLAGS += $(pkg-config --cflags cuda)
LIBS += $(pkg-config --libs cuda)

相关内容