C++ 导出dll 类成员变量问题debug记录
今天因为项目原因需要将ubuntu下的工程移植到windows平台。在ubuntu下面我们使用的是qmake来构建的工程,在windows上面移植的时候,将工程构建软件替换为cmake。 在移植的时候,也在吐槽windows的版本管理,什么vs2013的库不能用于vs2015编译链接,debug版本不能链接release版本之类的设定。我反正觉得这些设定挺奇葩的,在实际情况中,我们常常需要链接一些第三方库,如果是外部人员提供的话,那么就会只有release版本,调试起来就很难受了。 在移植成功后遇到了一个问题,这个问题折腾了我还比较久的时间。就是在我们工程中自己编写的动态库dll中需要导出类。而在我们类是用单例做成的。所以要导出的类中有一个静态成员变量。在主程序链接的时候一直报错,没有找到该静态变量。 代码结构类似这样: dll h文件 #pragma once #include "stdio.h" #ifdef _DLL_INNER #define _EXPORT _declspec(dllexport) #else #define _EXPORT _declspec(dllexport) //#define _EXPORT _declspec(dllimport) #endif class _EXPORT ss { public: static ss * Ins() { if