C ++包容性保护被忽略"项目之间

时间:2014-10-17 17:43:13

标签: c++ visual-studio-2010 include static-libraries

我有两个项目;静态库和可执行文件(标准Win32设置,使用多线程调试DLL设置)。 在我的libray中,我有一个Globals.h,代码如下:

#ifndef _GLOBALS_H
#define _GLOBALS_H

#include <SDL.h>
#include <string>

namespace Eng
{
    bool Run = true;

    SDL_Window *Window = NULL;
    SDL_GLContext GlContext;

    Uint32 WindowFlags = SDL_WINDOW_OPENGL;
}

#endif

这一切都很好,花花公子,在那个项目中一切正常。但是,只要我将该文件包含在我的可执行项目中的多个文件中(所有文件都受包含警卫保护),我就会开始为Globals.h中的每个变量获取多个定义的符号错误。

同样,我从math.hM_PI macro redefinition)收到了一些宏重新定义警告。我不确定这是否相关,但似乎可能是由于错误的类似性质(在一个项目中定义的警卫似乎没有在另一个项目中应用)。

任何人都有任何想法如何解决这个问题?我觉得我在某个地方错过了一些非常重要的编译器设置:(

0 个答案:

没有答案
相关问题