我正在使用早期版本的Cocos2dx来编写游戏并使用VS 2013进行编译.请注意,我正在使用CMake和Qt Creator两种编译器版本.当Cocos2dx v3.12问世时,我决定在我的游戏中将lib升级到该版本并开始使用VS 2015.然后我开始收到此错误:
QCardManager.cpp.obj:-1:错误:LNK2001:未解析的外部符号"public:static class QCard*__cdecl QCard :: create(enum PLAYER,struct Question const*,enum CARD_TYPE,int const&)"(?create @ QCard @@ SAPAV1 @ W4PLAYER @@ PBUQuestion @@ W4CARD_TYPE @@ ABH @ Z)
当我使用VS 2013时,我没有得到那个错误.经过几个小时的调试后我发现了原因.
这是粗略的贬值QCard:
#include "2d/CCSprite.h"
#include "CommonVariables.h"
class RandomPostureSprite;
class Question;
namespace cocos2d
{
class Label;
}
enum class CARD_TYPE {
QUESTION,
OPTION
};
class QCard : public cocos2d::Sprite
{
public:
static QCard *create(PLAYER player, const Question *question, CARD_TYPE type, const int &index);
}
Run Code Online (Sandbox Code Playgroud)
我在QCard.cpp文件中正确实现了该功能,并且该文件也正确地添加到了项目中.所以问题是class …