我试图在一个小项目中添加一个构建后命令,它将自动获取我的构建输出文件(ELF),并将其转换为Intel HEX格式,以便在微控制器上闪烁。
但是,当我添加此命令时,构建将失败。它使用由shell运行的所有CMake变量字符串重复该命令,并使用: not found对其进行后期修复。
当我在正常的ELF成功构建后在终端上运行这条精确的线路时,它就像预期的那样工作。对于CMake如何处理这个问题,我有什么地方遗漏了吗?
我将目标添加到CMakeLists.txt中,如下所示:
add_custom_command(
TARGET ${EXECUTABLE_NAME}
POST_BUILD
COMMAND "${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_NAME} ${PROJECT_NAME}.hex"
)该命令最终解析为<absolute-path>/avr-objcopy -O ihex test_blink.elf test_blink.hex,我可以验证它,因为它是由CMake打印到终端的。
发布于 2018-12-01 17:05:23
这个字符串是错误的:
COMMAND "${CMAKE_OBJCOPY} -O ihex ${EXECUTABLE_NAME} ${PROJECT_NAME}.hex"您应该使用ARGS关键字:
COMMAND ${CMAKE_OBJCOPY} ARGS -O ihex ${EXECUTABLE_NAME} ${PROJECT_NAME}.hexhttps://stackoverflow.com/questions/51124762
复制相似问题