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

时间:2014-12-02 13:21:41

标签: gcc makefile mingw gnu-make

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

$(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)

在Code Composer中构建时,这是显示的错误

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并在那里试了一下,看看能否找到原因。输入这个问题行,它运行完全正常并成功生成目标!所以我不确定Code Composer会出现什么问题...... 有任何想法吗?谢谢!

编辑:如果我在cygwin中使用gmake运行相同的makefile,它会显示与CCS中相同的错误。那么......为什么用gmake运行这个问题而不是仅仅运行Cygwin的编译器呢?

编辑:从我可以收集到的内容来看,它看起来像Windows和Cygwin之间的编译器不兼容?如果我将makefile中的编译器更改为     C_COMPILER = C:\ cygwin的\ BIN \ gcc.exe 从Code Composer运行makefile时仍然存在问题,但运行gmake all在Cygwin中完美运行!

1 个答案:

答案 0 :(得分:0)

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