重命名函数后,为什么会出现链接器错误?

时间:2014-01-14 10:23:08

标签: c++ visual-studio-2012 c++11 linker-errors

Visual Studio 2012.我有一个函数CreateMyModulePath,我将其重命名为CreateModulePath - 我在.h和.cpp文件中都做了。我重建整个项目,但VS给了我链接器错误,它找不到CreateModulePath

我完全没有想法什么是错的 - 毕竟它是非常基本的重构,更改函数名称(声明+实现和所有调用)。消息说:

  

1> CustomDialog.obj:错误LNK2001:未解析的外部符号“class std :: basic_string,class std :: allocator> __cdecl ih_helpers :: CreateModulePath(class std :: basic_string,class std :: allocator> const& amp; ;)“(?CreateModulePath @ ih_helpers @@ YA?AV?$ basic_string @ _WU?$ char_traits @ _W @ std @@ V?$ allocator @ _W @ 2 @@ std @@ ABV23 @@ Z)

CustomDialog是此项目的一部分,函数CreateModulePath仅在此项目中使用。整个解决方案中没有其他CreateModulePath,此外我总是添加适当的名称空间前缀。

2 个答案:

答案 0 :(得分:2)

确保CreateModulePath()中的.h/.cpp相同。它们应该是他们必须分享的相同手段

  • 相同的功能名称
  • 相同的退货类型
  • 相同的输入参数类型

答案 1 :(得分:1)

您错过了几个引用,或者您无法完全重建项目。