💡
原文英文,约600词,阅读约需3分钟。
📝
内容提要
本文讨论了C++中的链接错误“未定义引用”,该错误在链接阶段出现,表示找不到已声明但未定义的函数或变量。解决方法包括确保函数已定义、声明与定义匹配、将所有源文件添加到编译中,以及确保库正确链接。
🎯
关键要点
- C++中的链接错误“未定义引用”在链接阶段出现,表示找不到已声明但未定义的函数或变量。
- 解决方法包括确保函数已定义,声明与定义匹配,所有源文件都添加到编译中,以及确保库正确链接。
- 缺少定义会导致链接错误,需要添加函数的实现。
- 声明与定义不匹配会导致链接错误,确保函数的参数类型和数量一致。
- 未将文件添加到编译中会导致链接错误,需要在CMakeLists.txt中添加所有相关源文件。
- 库中的函数定义未链接会导致链接错误,需要在CMakeLists.txt中链接库。
❓
延伸问答
C++中的未定义引用错误是什么?
未定义引用错误是在链接阶段出现的,表示找不到已声明但未定义的函数或变量。
如何解决C++中的未定义引用错误?
解决方法包括确保函数已定义、声明与定义匹配、将所有源文件添加到编译中,以及确保库正确链接。
声明与定义不匹配会导致什么问题?
声明与定义不匹配会导致链接错误,链接器无法找到正确的函数定义。
如何在CMakeLists.txt中添加源文件?
在CMakeLists.txt中使用add_executable命令添加所有相关源文件,例如:add_executable(MyExec main.cpp function.cpp)。
库中的函数定义未链接会出现什么错误?
如果库中的函数定义未链接,链接器会报未定义引用错误,尽管函数定义存在。
如何确保库正确链接到可执行文件?
使用target_link_libraries命令将库链接到可执行文件,例如:target_link_libraries(MyExec PRIVATE FunctionLib)。
➡️