Ниже приведен небольшой фрагмент из моего файла CMakeLists.txt.Я мог бы добавить больше, но я думаю, что вопрос включает только несколько строк.
Версии инструментов:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.8)
set(CMAKE_OSX_SYSROOT "") # This is the specific line in question
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-c++)
set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)
add_executable(test_app
./src/main.cc
./startup/gcc_startup.cc
)
При компиляции на OSX мне нужновключите следующий оператор:
set(CMAKE_OSX_SYSROOT "")
в противном случае CMake вставит
-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
в мою командную строку компиляции.
Он не выполняет эту проверку при компиляции в Linux.
Почему CMake настаивает на добавлении заголовочных файлов OSX sdk в кросс-компиляцию Cortex-M - и я делаю что-то, чтобы исправить это?