自定义工具链的CMake工具链文件(-c编译器选项不同含义)
CMake toolchain file for custom toolchain (-c compiler option different meaning)
我尝试为 Tasking Aurix 编译器 (ctc) 创建 CMake 工具链文件,其中 -c
选项具有不同的含义:
-c --iso=<year> ISO C standard (90, 99) (default: 99)
是否可以省略目标文件配方的 -c
参数,或者是否可以为此类配方设置自定义模板?
目前我有一个丑陋的解决方法所以在 CMake 之后我调用脚本编辑生成的 makefile 并将选项 -c
更改为 -c 99
但最好我希望能够从 CMake 生成有效的 makefile直接地。
好的,我找到了解决方案。为了实现它,我必须通过设置 CMAKE_<LANG>_COMPILE_OBJECT
变量来覆盖默认行为,所以在我的例子中,下面的行是
set(target_compiler ${CMAKE_C_COMPILER})
set(CMAKE_C_FLAGS "-c 99")
set(CMAKE_C_COMPILE_OBJECT "${target_compiler} <INCLUDES> <FLAGS> -o <OBJECT> <SOURCE>")
解决了我的问题
我尝试为 Tasking Aurix 编译器 (ctc) 创建 CMake 工具链文件,其中 -c
选项具有不同的含义:
-c --iso=<year> ISO C standard (90, 99) (default: 99)
是否可以省略目标文件配方的 -c
参数,或者是否可以为此类配方设置自定义模板?
目前我有一个丑陋的解决方法所以在 CMake 之后我调用脚本编辑生成的 makefile 并将选项 -c
更改为 -c 99
但最好我希望能够从 CMake 生成有效的 makefile直接地。
好的,我找到了解决方案。为了实现它,我必须通过设置 CMAKE_<LANG>_COMPILE_OBJECT
变量来覆盖默认行为,所以在我的例子中,下面的行是
set(target_compiler ${CMAKE_C_COMPILER})
set(CMAKE_C_FLAGS "-c 99")
set(CMAKE_C_COMPILE_OBJECT "${target_compiler} <INCLUDES> <FLAGS> -o <OBJECT> <SOURCE>")
解决了我的问题