Я хочу создать библиотеку с архиватором (из arduino, esp8266) в cmake.
add_library(arduino_core STATIC ${CORE_ASM_ITEMS} ${CORE_C_ITEMS} ${CORE_CXX_ITEMS})
Эти параметры я установил, особенно CMAKE_AR
set(CMAKE_C_COMPILER "${TOOLCHAIN_BIN}/${TARGET_TRIPLET}-gcc${SYSTEM_EXTENSION}")
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_BIN}/${TARGET_TRIPLET}-g++${SYSTEM_EXTENSION}")
set(CMAKE_ASM_COMPILER "${TOOLCHAIN_BIN}/${TARGET_TRIPLET}-gcc${SYSTEM_EXTENSION}")
set(CMAKE_AR "${TOOLCHAIN_BIN}/${TARGET_TRIPLET}-ar${SYSTEM_EXTENSION}")
SET(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> cru <TARGET> <LINK_FLAGS> <OBJECTS>")
SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> cru <TARGET> <LINK_FLAGS> <OBJECTS>")
Если ясоберите эту библиотеку с помощью make, она выполнит:
/Users/XXX/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/xtensa-lx106-elf-ar cru libarduino_core.a CMakeFiles/arduino_core.dir/Users/XXX/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/cont.S.o CMakeFiles/arduino_core.dir/Users/XXX/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/StackThunk.c.o
и еще много объектов в конце (около 60).Но я думаю, что архиватор не хочет этот синтаксис.Если я свяжу эту собранную библиотеку в конце, она завершится неудачно из-за неопределенных ссылок.
Но если я собрал библиотеку вручную, предоставив каждому объекту собственное выполнение архиватора, как показано ниже, связывание библиотеки наконец успешен.
/Users/XXX/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/xtensa-lx106-elf-ar cru libarduino_core.a CMakeFiles/arduino_core.dir/Users/XXX/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/cont.S.o
/Users/XXX/Library/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-3-20ed2b9/bin/xtensa-lx106-elf-ar cru libarduino_core.a CMakeFiles/arduino_core.dir/Users/XXX/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.0/cores/esp8266/StackThunk.c.o
...
Итак, мой вопрос: есть ли какая-либо опция CMake, например, для ограничения количества данных объектов?Или что-нибудь подобное?