如何强制 Nsight Eclipse 使用旧版本的 gcc/g++?

How to force Nsight Eclipse to use an older version of gcc/g++?

我正在尝试将现有的 C/C++ CUDA 项目迁移到 Nsight Eclipse 中。我正在使用手动编写的 makefile 来构建项目,但是出现以下错误:

#error -- unsupported GNU version! gcc versions later than 4.9 are not supported!

我以前在 Nsight 之外使用 makefile 时遇到过这个错误,但是我通过在 /usr/local/cuda-7.5/bin 中创建指向 gcc-4.9 和 g++-4.9 的符号链接来修复它。这不适用于 Nsight。

这是我的 makefile(注意:我已经在 Nsight 中设置了 CUDA_HOME 环境变量):

NVCC          := nvcc

MODULES       := FA_kernels FD_kernels MEM_kernels MOD_kernels .
SRC_DIR       := $(MODULES)
BUILD_DIR     := $(addprefix build/,$(MODULES))

SRC           := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.cu))
OBJ           := $(patsubst %.cu,build/%.o,$(SRC))
HEADERS       := headers $(CUDA_HOME)/include $(CUDA_HOME)/samples/common/inc
INCLUDES      := $(addprefix -I,$(HEADERS))


build/%.o: %.cu
    $(NVCC) $(INCLUDES) -c $< -o $@

.PHONY: all checkdirs clean

all: checkdirs build/lem

build/lem: $(OBJ)
    $(NVCC) $^ -o $@ -lgdal


checkdirs: $(BUILD_DIR)

$(BUILD_DIR):
    @mkdir -p $@

clean:
    @rm -rf build

有没有办法强制 Nsight 使用 gcc-4.9 和 g++-4.9?

根据您的问题文本,我假设您已将其作为 makefile 项目导入。

在这种情况下,一个选择是将 makefile 中的第一行更改为如下内容:

NVCC          := nvcc -ccbin /path/to/gcc

您可以在 nvcc documentation

中阅读有关此选项的更多信息

这只会影响此 project/makefile 的更改,而不是所有项目或所有 eclipse/nsight