工具链路径自适应
This commit is contained in:
1 parent
a1cbf4a3c3
commit
a41b1ed836
3 files changed
+51
-3
No files matched your search
+14
-1
@@ -5,7 +5,20 @@ set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
# Skip linker test for bare-metal (avoids _exit/_sbrk etc.)
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
set(ARM_TOOLCHAIN_DIR "C:/Program Files/Arm/GNU Toolchain mingw-w64-x86_64-arm-none-eabi")
|
||||
# 路径检测:环境变量 → PATH
|
||||
set(ARM_TOOLCHAIN_DIR "$ENV{ARM_GCC_ROOT}" CACHE PATH "ARM GCC toolchain root")
|
||||
|
||||
if(NOT ARM_TOOLCHAIN_DIR OR NOT EXISTS "${ARM_TOOLCHAIN_DIR}/bin/arm-none-eabi-gcc${CMAKE_EXECUTABLE_SUFFIX}")
|
||||
find_program(_GCC arm-none-eabi-gcc)
|
||||
if(_GCC)
|
||||
get_filename_component(_BIN ${_GCC} DIRECTORY)
|
||||
get_filename_component(ARM_TOOLCHAIN_DIR ${_BIN} DIRECTORY)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ARM_TOOLCHAIN_DIR)
|
||||
message(FATAL_ERROR "ARM GCC not found. Install or set ARM_GCC_ROOT env var.")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_COMPILER "${ARM_TOOLCHAIN_DIR}/bin/arm-none-eabi-gcc.exe")
|
||||
set(CMAKE_CXX_COMPILER "${ARM_TOOLCHAIN_DIR}/bin/arm-none-eabi-g++.exe")
|
||||
|
||||
Reference in new issue
Block a user