包含全局函数时的c ++错误lnk2005

时间:2013-08-21 00:59:02

标签: c++ dll visual-studio-2012 lnk2005

我正在研究一个dll项目,它一直运行良好,直到我添加了一个新的.h,其中包括一个全局函数和一个结构。然后编译(或链接)失败。

以下是错误消息:

1>RobotReality.obj : error LNK2005: "double __cdecl GetNumber(void)" (?GetNumber@@YANXZ) [[已经在 dllmain.obj 中定义  translate: this has been defined in dllmain.obj]]

1>stdafx.obj : error LNK2005: "double __cdecl GetNumber(void)" (?GetNumber@@YANXZ) [[已经在 dllmain.obj 中定义  translate: this has been defined in dllmain.obj]]

我添加了"#pragma once",但问题仍然存在。

如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

将它们声明为“静态”,然后让编译器完成工作。