Я знаю, что в вопросе упоминается glibc, но для С++, поскольку -static-libgcc и -static-libstdc++ являются параметрами компоновщика, правильный способ установить их в CMake — это target_link_libraries().
Таким образом, вы должны установить его следующим образом, где MyLibrary — это имя вашего проекта:
target_link_libraries(MyLibrary -static-libgcc -static-libstdc++)
Учитывая это, если вы хотите полностью статическую компоновку glibc, вы также должны передать флаг -static.
target_link_libraries(MyLibrary -static)
Если вы хотите больше глобальных настроек:
set(BUILD_SHARED_LIBS OFF)
set(CMAKE_EXE_LINKER_FLAGS "-static")
Однако имейте в виду, что glibc не предназначен для статической компоновки, и без большой дополнительной работы вы не получите действительно статический пакет. Ваш вариант использования для создания пакета из Fedora, который может работать на машине с RedHat 6, не будет легко работать при статической компоновке glibc.
person
Cinder Biscuits
schedule
18.10.2017