サードパーティのコードをビルドして私たちのSTLPortのプライベートバージョンとリンクしようとしています。そのコードはCMakeを使用しています。CMakeビルドからlibstdC++を削除します
コンパイルが私たちのSTLPortインクルードに対して機能するようになりましたが、リンカーがlibstdC++でリンクするのを止められません。私は試しました:
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -nostdlib")
list(REMOVE_ITEM CMAKE_CXX_IMPLICIT_LINK_LIBRARIES stdc++)
運がありません。
Amazon Linux AMI(RHEL 5.xベース)、CMake 2.8.12。
提案/指摘をいただければ幸いです。
ありがとうございました。
['CMAKE_USER_MAKE_RULES_OVERRIDE'](https://cmake.org/cmake/help/latest/variable/CMAKE_USER_MAKE_RULES_OVERRIDE.html)スクリプトを試すことができます。 'CMakeCXXCompiler.cmake'にキャッシュされる前に' CMAKE_CXX_IMPLICIT_LINK_LIBRARIES'を修正することができます。例については、[here](http://stackoverflow.com/questions/28732209/change-default-value-of-cmake-cxx-flags-debug-and-friends-in-cmake)を参照してください。 – Florian
これはパイロットエラーです。私が以下に言及しているように、CMakeファイルは大きく、定義から遠く離れた問題を引き起こしたSTLPort定義に隠れた/マスクされたエラーがありました。 'set(CMAKE_EXE_LINKER_FLAGS" $ {CMAKE_EXE_LINKER_FLAGS} -nostdlib ")'がすべて必要です。 –