【问题标题】:undefined reference to A::funcA(int) [duplicate]对 A::funcA(int) 的未定义引用 [重复]
【发布时间】:2015-03-14 16:03:31
【问题描述】:

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

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

编译时我忘记了什么吗?我只是在使用 g++ b.cpp 我正在使用 g++ 4.7.2。

提前致谢。

【问题讨论】:

  • 我发布了新问题,因为我无法评论我引用的现有答案(需要 50 声望)。如果没有用,您可以关闭问题谢谢:)

标签: c++ function static


【解决方案1】:

以链接问题中的代码为例:由于函数A::funcA(int)定义a.cpp中,因此您还需要在编译中包含该源文件,例如

g++ b.cpp a.cpp

【讨论】:

  • 非常感谢它现在可以工作了! :)
【解决方案2】:

你还需要编译a.cpp

g++ b.cpp a.cpp

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

【讨论】:

    猜你喜欢
    • 2012-10-24
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2013-06-20
    • 2012-02-05
    • 2014-12-27
    相关资源
    最近更新 更多