Makefile:进程冒号分隔的环境变量

Makefile:进程冒号分隔的环境变量,makefile,environment-variables,Makefile,Environment Variables,假设我有一些环境变量,比如 echo $CPATH /share/software/user/open/metis/5.1.0/include:/share/software/user/restricted/imkl/2018/mkl/include 我如何在使用gcc编译代码的Makefile中使用它? 这似乎不起作用 gcc -I$(CPATH) 因为gcc似乎无法处理这些问题 首选的解决方案是什么?我应该在Makefile中使用c/p路径,还是使用其他更优雅的方法?如果使用GNU ma

假设我有一些环境变量,比如

echo $CPATH
/share/software/user/open/metis/5.1.0/include:/share/software/user/restricted/imkl/2018/mkl/include
我如何在使用gcc编译代码的Makefile中使用它? 这似乎不起作用

gcc -I$(CPATH)
因为gcc似乎无法处理这些问题


首选的解决方案是什么?我应该在Makefile中使用c/p路径,还是使用其他更优雅的方法?

如果使用GNU make,我认为以下是一个简单且优雅的解决方案:

gcc -I $(subst :, -I ,${CPATH})
BSD的情况是:

gcc -I ${CPATH:C,:, -I ,g}
也许您也可以使用C_INCLUDE_PATH环境变量:

C_INCLUDE_PATH=${CPATH} ; gcc ...