用cmake在windows下生成.dll版本的动态库,遇到的问题。
问题1,生成的dll名字有问题。
解决方案:采用extern{}
包围住头文件中代码
问题2,生成的dll没有接口,或者只生成了dll,而没有相应的导入库.lib。
解决方案:添加dllexport,方法:
#ifdef BUILD_XXX_DLL #define IO_XXX_DLL __declspec(dllexport) #else #define IO_XXX_DLL __declspec(dllimport) #endif
其中BUILD_XXX_DLL可以在cmakelists.txt文件中通过Add_Definitions(-DUNICODE -D_UNICODE -DBUILD_XXX_DLL)
添加
问题3:c2485 export 无法识别扩展特性。
解决方案:将export换成dllexport即可。