我试图在mingw/msys下的windows上编译一个开源项目。
makefile包含(除其他外)这一行
@${MAKE} --no-print-directory -C . -f physfs.makephysfs.make包含(除其他外)以下几行:
ifndef CC
CC = gcc
endif当我运行make时,会得到以下错误:
Creating obj/Debug/physfs
physfs.c
make[1]: cc: Command not found
make[1]: *** [obj/Debug/physfs/physfs.o] Error 127
make: *** [physfs] Error 2如果我评论ifndef / endif对使CC = gcc完好无损,则构建工作。如果我没有发出这个命令,而是发出以下命令:
make -e CC=gcc构建也同样有效。但是当我在msys中运行以下命令时:
echo $CC什么都不显示。
我认为在MSYS中环境变量是如何工作的有一些基本的东西,这使我无法理解。
请一些人帮我解决这个问题,这样我就能理解为什么简单的'make‘命令会发出抱怨,以及为什么ifndef块不能像我期望的那样工作。
发布于 2010-10-27 01:26:07
CC是在make会话中自动定义的几个隐式变量之一,因此行ifndef CC永远不应该计算为true。
这就解释了为什么在echo $CC的命令行中看不到任何东西。MSYS环境没有CC概念。
如果希望从make会话中查看变量的值,可以始终使用信息函数:
$(info $(CC))这将在计算makefile中的该行时将CC变量的值回显到控制台。
https://stackoverflow.com/questions/4029274
复制相似问题