先日からWindows APIを多く含んだC++プロジェクトのテストを書いています。その際、Windows APIのスタブ/モック用のフレームワークとしてfffを利用しています。
[https://github.com/meekrosoft/fff:embed:cite]
しかし、READMEに沿ってWindows APIのフェイク関数を定義したところ、MinGW-w64ではうまくコンパイルできるものの、MSVCでは多重定義(LNK2005)となりました。
例えば次のようなコードです。
追記
MSVCのリンカに対して、多重定義が検出されてもリンクされるようにオプションを渡せばいいです。
詳細は次を参照してください。
[https://docs.microsoft.com/en-us/cpp/build/reference/force-force-file-output?view=msvc-160:embed:cite]
CMakeならば次のようにして、リンカにフラグを渡します。
add_link_options(/FORCE:MULTIPLE)