小编Jen*_*ens的帖子

错误 LINK2005 已在 Main.obj 中定义

我遇到这个问题,如果我包含某个标头,则无法编译。

标题的代码:

//#include "tinyxml2.h"

#pragma once

#include "Camera.h"
#include "Controller.h"
#include "Lights.h"
#include "Mesh.h"

namespace ActorFactory {

    //using namespace tinyxml2;

    template<class T>  
    Actor* createInstance() { 
        return new T; 
    }

    typedef std::map<std::string, Actor*(*)()> class_map;
    class_map test = {
        { "Camera", &createInstance<Camera> }
        //{ "Mesh", &createInstance<Mesh> }
    };
}
Run Code Online (Sandbox Code Playgroud)

来自 Visual Studio 的完整错误消息:

1>------ Build started: Project: ogl_inf251_ca2, Configuration: Debug Win32     ------
1>  Main.cpp
1>d:\development\inf251\ogl_inf251_ca2\model_obj.h(26): warning C4005:     '_CRT_SECURE_NO_WARNINGS' : macro redefinition
1>          command-line arguments :  see previous definition of     '_CRT_SECURE_NO_WARNINGS'
1>  Generating …
Run Code Online (Sandbox Code Playgroud)

c++ factory object lnk2005

0
推荐指数
1
解决办法
9027
查看次数

标签 统计

c++ ×1

factory ×1

lnk2005 ×1

object ×1