Gcc gmake编译错误,但单行运行正常

Gcc gmake编译错误,但单行运行正常,gcc,makefile,mingw,gnu-make,Gcc,Makefile,Mingw,Gnu Make,我正在使用Unity单元测试框架编辑具有多个目标的makefile。按下CodeComposer Studio中的“Build”按钮将运行fine,直到下一行 $(C_COMPILER) $(INC_DIRS) $(SRC_FILES1) -o $(TARGET1) makefile中还有以下几行: C_COMPILER=C:\MinGW\bin\mingw32-gcc.exe UNITY_ROOT=../test/unity/ UNITY_C=$(UNITY_ROOT)unity.c UNI

我正在使用Unity单元测试框架编辑具有多个目标的makefile。按下CodeComposer Studio中的“Build”按钮将运行fine,直到下一行

$(C_COMPILER) $(INC_DIRS) $(SRC_FILES1) -o $(TARGET1)
makefile中还有以下几行:

C_COMPILER=C:\MinGW\bin\mingw32-gcc.exe
UNITY_ROOT=../test/unity/
UNITY_C=$(UNITY_ROOT)unity.c
UNITY_H=$(UNITY_ROOT)unity.h
INC_DIRS=-I../include/ -I$(UNITY_ROOT)
SRC_FILES1=$(UNITY_C) ../source/ProductionCode.c  ../test/TestProductionCode.c ../test/test_runners/TestProductionCode_Runner.c
TARGET_BASE1=test1
TARGET_EXTENSION=.out
TARGET1 = $(TARGET_BASE1)$(TARGET_EXTENSION)
当在CodeComposer中构建时,会显示以下错误

C:\MinGW\bin\mingw32-gcc.exe -I../include/ -I../test/unity/ ../test/unity/unity.c ../source/ProductionCode.c  ../test/TestProductionCode.c  ../test/test_runners/TestProductionCode_Runner.c -o test1.out
gmake[1]: *** [default] Error 1
gmake[1]: Leaving directory `C:/Users/matt.harding/Documents/SubversionDirectories/pt_listen_only_can_interface/sw/ccs6_workspace/makefile_project_test1/Debug'
gmake: *** [all] Error 2
所以我打开了Cygwin,试着在那里找到原因。只要进入这个问题行,它就运行得非常好,并且成功地生成了目标!所以我不确定代码生成器中会出现什么问题。。。 有什么想法吗?谢谢

编辑:如果我在cygwin中运行与gmake相同的makefile,它将显示与CCS中相同的错误。所以为什么在gmake中运行这个程序会有问题,而不仅仅是在Cygwin中运行编译器

编辑:据我所知,Windows和Cygwin之间的编译器不兼容?如果我将makefile中的编译器更改为 C_COMPILER=C:\cygwin\bin\gcc.exe
从CodeComposer运行makefile时仍然存在一个问题,但是在Cygwin中运行gmake都能完美工作

所以我找到了解决问题的办法。 我把编译器改为 C_COMPILER=C:\MinGW\bin\gcc.exe 仍然无法在代码编写器工作室(CCS)中工作 我将C:\MinGW\bin\添加到系统路径中。 在CCS中仍然不起作用。 在将MinGW添加到系统路径后,我关闭并重新打开了CCS。 成功!
我不完全理解为什么事情不起作用,为什么我期望它们会起作用,但至少我们有了一个解决方案。

在cygwin shell中运行
会使该目录起作用吗?更改
C_编译器
路径以使用
/
而不是\是否会改变任何东西?我确实尝试先运行“make”,但显示了以下内容:Microsoft Windows[Version 6.1.7601]Copyright(C)2009 Microsoft Corporation。保留所有权利。“抱歉,看起来应该是“从该目录运行
gmake
有效吗?”。抱歉,但我是新手……运行gmake会显示相同的错误!所以我想我现在的问题是:为什么通过gmake运行此行会失败?是的,运行
gmake
(这是GNU make)在该目录中,而不是
make
(显示的是Microsoft nmake).Ah.我打赌
gcc
试图查找其他相关的二进制文件,但没有使用完整路径。make的错误对此毫无帮助。该目录可能已经在shell的路径中。是的,需要重新启动应用程序才能让它们看到新的系统级设置(事实上,我有点惊讶你不需要重新启动所有的Windows就可以工作了)。