C ++プロジェクトのテストにGoogleTestを使用していますが、プリコンパイルされたライブラリがUbuntuパッケージで配布されていないことを確認した後、プロジェクトのWebサイトで次の情報を見つけました。
異なるコンパイラフラグを使用してGoogleTestとテストコードをコンパイルすると、同じクラス/関数/変数の異なる定義が表示される場合があります(たとえば、Google Testで#ifを使用しているため)。したがって、正気を保つために、コンパイル済みのGoogleTestライブラリをインストールしないことをお勧めします。代わりに、各プロジェクトは、Google Testとテストの両方に同じフラグが使用されていることを確認できるように、GoogleTest自体をコンパイルする必要があります。
私がこれから得たのは、テストしているプロジェクトとは別にGoogleTestをコンパイルするのは悪い考えだということです。私が理解していないのは、これが単なるGoogleTestの問題なのか、それともライブラリをリンクするための一般的な問題なのかということです。
質問
プリコンパイルされたサードパーティライブラリ、コンパイラフラグなどにリンクするのが安全でない状況はありますか?そうでない場合、GoogleTestの何が特別なのですか?