私はWindows上でcmakeを学んでいます。
私はthis exampleを読み込んで実行して、1つのビジュアルスタジオプロジェクトからスタティックライブラリと共有ライブラリの両方をビルドすることができます。私は、このコマンドを見つけ
:私の理解によると
cmakeで同時に静的ライブラリと共有ライブラリを構築する方法
add_library(math SHARED ${MATH_SOURCES} ${SIMPLE_FUNCTION_SOURCES} ${ADVANCED_FUNCTION_SOURCES})
を、このコマンドは、共有ライブラリを構築しています。また、hereから静的ライブラリと共有ライブラリを構築したい場合、私は2つのプロジェクトでそれを行う必要があります。
なぜ、最初の例では、1つのVisual Studioプロジェクトから両方のライブラリをビルドできるのですか?
編集
Florian
のおかげで、重要な点はMathExports.h
です。人々が簡単に見ることができるようにするには、私はここにファイルを置く:
#ifndef MathExports_h
#define MathExports_h
#ifdef _WIN32
#ifdef math_EXPORTS
#define MATH_EXPORT __declspec(dllexport)
#else
#define MATH_EXPORT __declspec(dllimport)
#endif
#else
#define MATH_EXPORT
#endif
#endif // MathExports_h
ありがとうございました。 – sflee