Makefile:处理以冒号分隔的环境变量

时间:2018-08-28 05:49:50

标签: 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中访问路径还是其他更优雅的东西?

1 个答案:

答案 0 :(得分:1)

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

gcc -I $(subst :, -I ,${CPATH})

BSD的情况:

gcc -I ${CPATH:C,:, -I ,g}

也许您也可以使用C_INCLUDE_PATH环境变量:

C_INCLUDE_PATH=${CPATH} ; gcc ...