用cmake在windows下生成.dll版本的动态库遇到的问题

用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即可。

猜你喜欢

转载自blog.csdn.net/jigetage/article/details/89442543