c - 键入的代码与书中完全相同,返回错误
问题描述
按照我的文本的指示,创建了两个单独的 .c 文件,它们将在编译时合并。但是,一个文件每次都返回一个错误,因此永远不会创建合并的文件。
我已经在 Ubuntu 和在线 C/C++ 编译器上运行了这些程序,并且可能已经阅读了 5 次文本。该代码在所有情况下都与文本中的内容匹配,但仍然出现错误。这是第一个文件的代码,称为 abs_func.c:
int absolute(int num)
{
if (num < 0)
return (-num);
else
return (num);
}
这是第二个文件 abs_main.c 的代码:
#include <stdio.h>
int absolute(int num);
int main()
{
int x = -12, y;
y = absolute(x);
printf("The absolute value of %d is %d\n", x, y);
}
然后,我通过使用链接:
gcc abs_main.c abs_func.c -o abs
我希望上面显示的文件与我的其他文件(显然有零错误)合并并且能够打开新文件,但这并没有发生。返回的错误是:/tmp/cc2EySTq.o: In function main':
/home/main.c:15: undefined reference to
absolute' collect2: error: ld returned 1 exit status
解决方案
您的代码是正确的,您的 : gcc abs_main.c abs_func.c -o abs 是正确的。但是您没有输入:gcc abs_main.c abs_func.c -o abs,您输入了:gcc main.c abs_func.c -o abs,这就是您收到消息的原因:/home/main.c:15: undefined reference to绝对。
推荐阅读
- r - 更改数据框列表中的一列并使用应用函数保留 changde 数据框而不是更改输出
- c# - 在 WebBrowser 控件中获取 HtmlElement 的当前/计算样式
- python - Firebase 云消息传递 HTTP v1 发送错误 - 400 客户端错误:对 url 的错误请求:https://fcm.googleapis.com/v1/projects/
/消息:发送 - javascript - 如何以 100% 全宽嵌入 YouTube iframe 视频
- excel - 当我尝试打开宏时 Excel 关闭
- php - 如何使用 php 进行多选选项?
- scala - 播放框架返回 404,带有 play.http.context 和斜杠
- python - 用线连接抖动的数据点 - seaborn python
- reactjs - 如何使用屏蔽输入添加 antd datepicker
- java - `Thread.checkAccess()` 是 `Thread.suspend()` 的合适替代品吗?