根据手册,如果你有一个外面的功能,你必须用宏指定。如果它是静态内联函数,你会怎么做?
有一个看起来像这样的功能:
#include "d_global.h"
class SHARED_EXPORT_IMPORT FruitType {
public:
enum type {
ORANGE = 0;
....
};
static const QString toString(const int type); // change something here?
};
#endif
inline const QString FruitType::toString(const int type) {
switch(type) {
case ORANGE:
return "orange";
...
}
当我尝试在不同的项目中使用它时,我收到以下链接错误:
错误11错误LNK2019:未解析的外部符号“__declspec(dllimport)public:static class QString const _ cdecl FruitType :: toString(int)”( _imp_?toString @ FruitType @@ SA?BVQString @@ H @ Z)在函数“public:void __thiscall someClass :: someFunction(class QString const&,class QString const&,class QPointer,int)”中引用“(someFunction @ SomeClass @@ QAEXABVQString @@ 0V?$ QPointer @ VQIODevice @@@@ H + Z)
编辑:我决定从共享库中取出这个头,并将其用作头文件。但是,我真的想知道在创建共享库时如何处理静态函数。