我在 Ubuntu 16.04 上运行,其中我从官方存储库安装了 gcc4.9 和 NVIDA 驱动程序,配置了 gcc 的替代方案,并安装了 CUDA 工具包 7.5.18。
当我尝试编译 CUDA 代码时,我收到很多类似这样的消息
/usr/lib/gcc/x86_64-linux-gnu/5/include/avx2intrin.h(247): error: ...
我怎样才能强制系统使用 gcc-4.9 标头而不是 gcc-5?
我使用 cmake 和 make 来编译源代码。
谢谢
答案1
您需要添加 -I目录标志添加到 make 文件和可能的 cmake 文件中的 CXX 标志中。目录将是您想要使用的标头的路径。如果仅包含正确的目录不起作用,那么最好也禁用默认包含路径,--nostdinc
但这不是必需的,因为它会首先搜索包含目录。要将这些标志添加到 cmake 文件,您必须指定类似以下内容的内容
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/usr/local/include -L/usr/local/lib")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/local/include")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
从关于设置 cmake 标志的答案(-L 标志用于指定仅在“”样式包含中搜索而不是 <> 样式的库)