CMake: Statische Verknüpfung von libgcc und libstdc ++ zu einer gemeinsam genutzten Bibliothek

Problem

Ich habe Probleme beim Verknüpfen von glibcc / glibc ++ mit einer gemeinsam genutzten Bibliothek unter Verwendung von CMake und GCC4.9 in meiner Ubuntu 16.04-Installation.

Zusätzliche Bedingungen

Laden der gemeinsam genutzten Bibliothek führt zu einem Problem in der Red Hat-Produktionsumgebung (in die ich sie kopiere), da meines Erachtens eine andere libstc ++ - Version verwendet wird (Fehler: GLIBCXX_3_4_20 nicht gefunden). Ich habe keine Sudo-Rechte und kann die Maschine nicht aktualisieren.

ie ich von @ abgeleitet haDie Blog, diesesPos, Ich habe versucht, statische Verknüpfungen mit libgcc und libgc ++ zu verknüpfe

set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static")

und againg mit

set(CMAKE_SHARED_LINKER_FLAGS "-static-libgcc -static-libstdc++ -static")

Aber das funktioniert nicht. Was does work ist dieses CMake-Skript:

add_library(myLib SHARED ${SOURCE_FILES})
set(CMAKE_EXE_LINKER_FLAGS " -static")
target_link_libraries(myLib -static-libgcc -static-libstdc++)

Dies muss der falsche Weg sein, meines Wissens sind -static-libgcc und -static-libstdc ++ Linker-Optionen und keine Bibliotheken ...

Frag: Wie verbinde ich statisch gegen -libgcc und -libstdc ++ richtig?

Danke im Voraus

Antworten auf die Frage(2)

Ihre Antwort auf die Frage