コードがクロスプラットフォームであることを確認しながら、共有ライブラリシンボル(Visual Studioのクライアントコードからリンクするため)を適切にエクスポートするにはどうすればよいですか?具体的には、推奨される方法で.defを使用していますか、それとも__declspec(dllexport)にプラットフォーム固有のマクロを使用する必要がありますか?マクロを使用する必要がある場合、クロスプラットフォームに適した例を挙げていただけますか?
クロスプラットフォームで使用するためのネイティブC++コードがいくつかあり、Cmakeを使用して.sln / .vcxprojファイルを生成し、Windowsで使用する.dllファイルを作成します。C ++ / CLIラッパー(これもdll)からこのdllにリンクするには、.libが必要です。これには、シンボルのエクスポートが必要です。__declspec(dllexport)または.defファイルのいずれかを使用する必要があることを学びました。私の懸念は、MSVCのもので共有コードを調整したくないということです(Linux、iOS、Mac OSX、Androidをサポートする必要があります...)。