我正在使用 cmake
中的 execute_process()
函数。
message(" FLAGS = ${FLAGS}")
message(" SCATTERFILE = ${SCATTERFILE}")
set ( EXECUTE_COMMAND "arm-none-eabi-gcc ${FLAGS} -E -P -x c-header ${SCATTERFILE} -o ~/ttt.ld" )
message("EXECUTE_COMMAND = ${EXECUTE_COMMAND}")
execute_process(COMMAND ${EXECUTE_COMMAND} RESULT_VARIABLE rv )
由于
message()
命令,所有东西都被完美地显示出来了,但在解析 cmake
时运行它会导致错误。我认为在解析过程中 FLAGS
变量没有按预期扩展。当我在终端上运行作为 message
命令结果显示的相同的 EXECUTE_COMMAND
时,它可以完美地运行。问题可能是什么呢?编辑: 我已经从中删除了
${FLAGS}
。set ( EXECUTE_COMMAND "arm-none-eabi-gcc ${FLAGS} -E -P -x c-header ${SCATTERFILE} -o ~/ttt.ld" )`
现在我正在使用
set ( EXECUTE_COMMAND "arm-none-eabi-gcc -E -P -x c-header ${SCATTERFILE} " )
输出结果如下:
EXECUTE_COMMAND arm-none-eabi-gcc -E -P -x c-header ~/scatterFile.scatter rv: No such File or directory.
如果我只是在终端上输入这个命令:
它会执行并给出期望的结果。arm-none-eabi-gcc -E -P -x c-header ~/scatterFile.scatter