可以配置Eclipse CDT生成一个生成辅助输出的makefile吗?

时间:2018-10-22 05:33:37

标签: c++ c eclipse makefile eclipse-cdt

我正在将Eclipse CDT项目的开发迁移到一个完全不同的系统。我试图仔细复制项目属性,但是仍然存在一些差异。该项目包含用于在LPC1758微控制器上运行FreeRTOS应用程序的代码,因此有效的编译输出为Intel HEX文件。

在新系统上,由Eclipse构建自动生成的makefile不会创建lpc1758_freertos.hex

这是有问题的makefile的片段:

# All Target
all: lpc1758_freertos.elf

...

# Other Targets
clean:
    -$(RM) $(CC_DEPS)$(C++_DEPS)$(OBJS)$(C_UPPER_DEPS)$(CXX_DEPS)$(SECONDARY_FLASH)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_UPPER_DEPS)$(C_DEPS)$(CPP_DEPS) lpc1758_freertos.elf
    -@echo ' '

post-build:
    -@echo 'Create binary file'
    -arm-none-eabi-objcopy -O binary lpc1758_freertos.elf lpc1758_freertos.bin
    -@echo ' '

这是我的旧系统中的相同代码段,也自动生成但行为正确:

# All Target
all: lpc1758_freertos.elf secondary-outputs

...

# Other Targets
clean:
    -$(RM) $(CC_DEPS)$(C++_DEPS)$(OBJS)$(C_UPPER_DEPS)$(CXX_DEPS)$(SECONDARY_FLASH)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_UPPER_DEPS)$(C_DEPS)$(CPP_DEPS) lpc1758_freertos.elf
    -@echo ' '

post-build:
    -@echo 'Create binary file'
    -arm-none-eabi-objcopy -O binary lpc1758_freertos.elf lpc1758_freertos.bin
    -@echo ' '

secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE)

这里的问题是未定义构建目标secondary-outputs且未将其包含在all目标下。当我在新的Makefile中手动进行这些更改时,lpc1758_freertos.hex似乎可以正确构建。

如何配置Eclipse以生成生成辅助输出的makefile?我知道我可以在Eclipse中关闭自动生成文件的功能,也可以在Eclipse之外运行make,但是我会喜欢继续使用Eclipse的自动生成文件,而不必担心secondary-outputs被覆盖。

更多详细信息:原始系统和新系统都在运行Eclipse Neon.3版本(4.6.3),Eclipse CDT 9.2.1,GNU MCU C / C ++ ARM编译器2.2.2和EPP CPP Bundle 4.6.3。< / p>

0 个答案:

没有答案