Ответ 1
Похоже, флаги "crs" жестко закодированы в команде для создания архива. Там нет способа переопределить только флаги; Вы должны переписать всю команду, например так:
SET(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> -X -r5 -o <TARGET> <LINK_FLAGS> <OBJECTS>")
SET(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> -X -r5 -o <TARGET> <LINK_FLAGS> <OBJECTS>")
Там также используется CMAKE_C_ARCHIVE_APPEND
(и эквивалент CMAKE_C_ARCHIVE_APPEND
), когда число объектов превышает максимум командной строки, он передает только флаг "r" в CMAKE_AR. Возможно, вам придется изменить это тоже, см. Https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_ARCHIVE_CREATE.html