0
我在windows上學習cmake。
我閱讀並運行this example,以便我可以從一個Visual Studio項目構建靜態和共享庫。
我發現這個命令:
如何通過cmake同時建立靜態庫和共享庫
add_library(math SHARED ${MATH_SOURCES} ${SIMPLE_FUNCTION_SOURCES} ${ADVANCED_FUNCTION_SOURCES})
根據我的理解,這個命令是建立共享庫。另外,從here,如果我想建立靜態和共享庫,我必須做兩個項目。
那麼,爲什麼我使用的第一個示例可以從一個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