我自己找到了解决方案。string
有用的功能在哪里。例如,我可以使用变量 BENCH_ARCH 来更改 ARM 拱门。在所有默认 C/C++ 标志定义之后,我在工具链文件中写入。首先,为缓存添加变量:
...
set(BENCH_ARCH "${BENCH_ARCH}" CACHE STRING "Arch" FORCE)`
...
之后,检查是否设置了变量并替换标志变量
if(BENCH_ARCH)
string(REGEX REPLACE "-march=[A-Za-z_0-9/-]*" "-march=${BENCH_ARCH}" <variable, which set flags> ${<variable, which set flags>})
endif()
...
例如:
string(REGEX REPLACE "-march=[A-Za-z_0-9/-]*" "-march=${BENCH_ARCH}" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
现在,我可以cmake -DBENCH_ARCH=armv5te -DCMAKE_TOOLCHAIN_FILE=<...> ...
用于启用-march=armv5te
和cmake -DCMAKE_TOOLCHAIN_FILE=<...> ...
用于启用默认工具链设置。希望这不仅对我有帮助。