创建共享库时,Qt链接器错误与静态功能

时间:2012-03-14 04:11:56

标签: c++ qt shared-libraries

根据手册,如果你有一个外面的功能,你必须用宏指定。如果它是静态内联函数,你会怎么做?

有一个看起来像这样的功能:

#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)

编辑:我决定从共享库中取出这个头,并将其用作头文件。但是,我真的想知道在创建共享库时如何处理静态函数。

0 个答案:

没有答案