首页 > 解决方案 > 覆盖 nvcc 的标头搜索顺序

问题描述

我有一个使用Thrust的 CUDA 项目。Thrust 随 CUDA Toolkit 一起提供,但我想使用我检查过的更新版本。

我调用nvccwith-isystem=/path/to/thrust但底层编译器调用看起来像

gcc ... "-I/usr/local/cuda-10.1/bin/../targets/x86_64-linux/include"  -isystem "/path/to/thrust"

由于 gcc 从左到右搜索目录,这意味着首先找到 Toolkit 的 Thrust 标头。

我可以在不修改 CUDA 工具包或编写编译器包装脚本的情况下覆盖此行为以首先找到我的 Thrust 结帐吗?

标签: gcccudathrustnvcc

解决方案


我只需要使用-I而不是-isystem.

我还了解到,这-Xcompiler --foo,--bar允许我在需要时注入其他参数。


推荐阅读