C语言编译报错:undefined reference to `aireRectangle` 原因排查
链接错误:undefined reference to `aireRectangle' 的原因及解决
这个错误是链接器(ld)抛出的链接阶段错误,不是编译阶段的语法错误,核心原因如下:
- 头文件
air.h只提供了aireRectangle函数的声明(告诉编译器函数的名称、参数和返回值类型),但没有提供函数的实际实现代码。 - 你执行
gcc main.c时,仅编译了main.c生成目标文件,但链接器找不到aireRectangle函数的二进制实现代码,无法完成最终可执行文件的生成。
解决步骤
- 确保你有包含
aireRectangle实现的源文件(比如命名为air.c),示例实现代码如下:
#include "air.h" double aireRectangle(double largeur, double hauteur) { return largeur * hauteur; }
- 修改编译命令,将所有相关的源文件都纳入编译流程:
gcc main.c air.c -o rectangle
这条命令会先分别编译main.c和air.c生成对应的目标文件,再由链接器将它们合并为可执行文件rectangle。
如果已经单独编译过air.c生成了air.o目标文件,也可以直接使用目标文件进行链接:
gcc main.c air.o -o rectangle
内容的提问来源于stack exchange,提问作者Eyzou
相关产品推荐
相关产品推荐

