LNK2001静态符号未解析,即使它是

LNK2001 static symbol unresolved, even though it is

提问人:nickfla1 提问时间:4/7/2016 更新时间:4/7/2016 访问量:56

问:

我知道这里有很多关于未解析的静态符号的解决方案,但我无法真正找到解决这个问题的方法。
我正在构建一个简单的游戏框架作为 DLL,并将其与解决方案中的另一个项目链接。实际上,这是我用于测试的项目,它给出了上面的错误,而不是框架本身。代码对我来说似乎是正确的,我将其声明为头文件中的私有参数,并在 .cpp 文件中的任何内容之前声明它。 我正在使用 Visual Studio 2015,如果它能以某种方式提供帮助。

Input.h 文件:

class DLLEXPORT Manager{
public:
    Manager();
};

class DLLEXPORT Input{
public:
    static void Foo();
public:
    friend class Manager;
    static Manager* m_manager;
};

输入.cpp文件

#include "Manager.h"

Manager* Input::m_manager = 0;

Manager::Manager(){
    Input::m_manager = this;
}

PS:对不起,英语不好。

C++ dllexport unresolved-external

评论

0赞 IceFire 4/7/2016
那么,您的测试项目是否链接到创建的文件或引擎的项目?lib
0赞 n. m. could be an AI 4/7/2016
您需要将导出的内容声明为 dllexport,将导入的内容声明为 dllimport。你在这样做吗?
0赞 nickfla1 4/7/2016
@n.m.我简直不敢相信真的那么简单。现在都修好了,谢谢!

答: 暂无答案