对 A::funcA(int) 的未定义引用

undefined reference to A::funcA(int)

我目前正在开始一个项目,我将拥有一个共享工具函数的文件,我可以使用它而不必实例化 class,我已经阅读了有关为此使用静态函数的信息,所以我决定尝试做同样的事情。但是我似乎不断收到对我的静态函数的未定义引用的错误。在寻找答案时,我遇到了几个答案,例如以下 link 中的那个,但我仍然无法编译我的代码: undefined reference to a static function

我决定复制并粘贴上面 link 中给出的代码,a.cpp/.h 和 b.cpp/.h 文件,但即便如此我还是会遇到编译错误: 对 main 的未定义引用 [这个错误我可以通过在 b.cpp 中添加一个简单的 main 函数来删除] 对 A::funcA(int)

的未定义引用

我是不是在编译的时候忘记了什么?我只是在使用 g++ b.cpp 我在使用 g++ 4.7.2.

提前致谢。

你还需要编译a.cpp:

g++ b.cpp a.cpp

否则链接器无法找到 A::funcA 的定义,因为它位于 a.cpp.

以链接问题中的代码为例:由于函数 A::funcA(int) 定义 a.cpp 中,您还需要包括你编译中的那个源文件,比如

g++ b.cpp a.cpp