如何配置 mex 以将编译器标志传递给 nvcc

How can one configure mex to pass compiler flags to nvcc

在使用 nvcc 编译 mex 文件时,我一直在努力将特定于 CUDA 的编译器选项传递给 nvcc 编译器,因为 mex 无法识别它们。

我找到了一些 old posts about passing compiler flags and some newer ones, 但是这些问题是针对特定用户的,mex 编译器这些年来也发生了变化,所以我不知道该怎么做。

所以,我的具体问题是:我应该怎么做才能让 mex 将编译器标志传递给 nvcc

更通用一点:应该如何使 mex 将编译器标志传递给另一个编译器?

如果使用选项位于 xml 文件中的最新编译方式,可以在其中对默认编译标志进行硬编码。例如我的看起来像:

COMPILER="nvcc"
      COMPFLAGS="-gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_35,code=sm_35 -gencode=arch=compute_50,code=\"sm_50,compute_50\" --compiler-options=/c,/GR,/W3,/EHs,/nologo,/MD"
      COMPDEFINES="--compiler-options=/D_CRT_SECURE_NO_DEPRECATE,/D_SCL_SECURE_NO_DEPRECATE,/D_SECURE_SCL=0,$MATLABMEX"
      MATLABMEX="/DMATLAB_MEX_FILE"
      OPTIMFLAGS="--compiler-options=/O2,/Oy-,/DNDEBUG"
      INCLUDE="-I"$MATLABROOT\extern\include" -I"$MATLABROOT\simulink\include""

  DEBUGFLAGS="--compiler-options=/Z7"

可以修改默认值COMPFLAGS