You need to enable JavaScript to run this app. C++正确包含头文件仍出现Abc类成员函数链接错误
优惠活动
大模型
产品
解决方案
定价
更多

C++正确包含头文件仍出现Abc类成员函数链接错误

C++ 链接器 undefined reference 错误原因与解决

错误诱因

  • 你执行的编译命令仅传入了main.cpp,完全没有包含存放类成员函数实现的Functions.cpp。
  • C++编译流程分两个阶段触发不同的校验规则:
    1. 编译阶段:仅处理传入的单个cpp文件,检查语法正确性、是否存在被调用函数的声明。因为testing.h中已经声明了Abc::input()和Abc::display(),所以单独编译每个cpp文件都能通过,不会报错。
    2. 链接阶段:整合所有编译生成的目标文件,查找被调用函数的实体实现。你没有将Functions.cpp编译产生的目标文件纳入链接流程,链接器找不到两个成员函数的具体实现代码,就会抛出未定义引用的错误。

解决方法

  • 把项目中所有依赖的cpp源文件都传入g++编译命令,执行:
    g++ -Wall -o main main.cpp Functions.cpp
    该命令会自动完成两个源文件的编译、目标文件的链接流程,最终生成可执行程序main。

补充:当项目规模变大、源文件数量较多时,不建议手动枚举所有cpp文件,可借助Makefile、CMake等构建工具自动管理编译流程,避免漏写源文件导致的同类链接错误。


内容的提问来源于stack exchange,提问作者Abdullah0123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 04:36:03