Nav*_*K N 4 c cmake visual-c++
我有一个使用CMake作为构建系统的共享库.它在使用GCC的Linux机器上编译很好.现在我正在尝试在Windows上编译.在指定之前,MSVC不会导出符号.我知道__declspec(dllexport).但是CMake维基中提供的示例令人困惑.请考虑以下代码.
#if defined (_WIN32)
#if defined(MyLibrary_EXPORTS)
#define MYLIB_EXPORT __declspec(dllexport)
#else
#define MYLIB_EXPORT __declspec(dllimport)
#endif /* MyLibrary_EXPORTS */
#else /* defined (_WIN32) */
#define MYLIB_EXPORT
#endif
Run Code Online (Sandbox Code Playgroud)
我理解,__declspec(dllexport)但想知道为什么__declspec(dllimport)使用?另外我该如何使用它?是MYLIB_EXPORT void function()吗?
考虑我有C函数命名foo().这在内部使用了几个static功能.导出时我还需要导出静态函数吗?或者只导出属于API的入口函数是否足够?
任何帮助,将不胜感激.
仅导出作为API一部分的入口函数就足够了.无需导出静态函数.
此外,无需使用__declspec(dllimport)进行功能.仅需要数据.Windows将自动执行导入功能.
以下链接可能会有所帮助:
http://msdn.microsoft.com/en-us/library/ms235636(VS.80).aspx
http://msdn.microsoft.com/en-us/library/ms682589(VS.85).aspx