免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4641 | 回复: 10
打印 上一主题 下一主题

[系统安装] gcc编译出错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-28 14:29 |只看该作者 |倒序浏览
本帖最后由 xiangbei1573 于 2012-06-28 15:03 编辑

这是四个文件的代码:
main.c:
  1. #include <stdio.h>
  2. #define pi 3.14159
  3. char name[15];
  4. float angle;

  5. int main(void)
  6. {
  7.         printf ("\n\nPlease input your name: ");
  8.         scanf  ("%s", &name );
  9.         printf ("\nPlease enter the degree angle (ex> 90): " );
  10.         scanf  ("%f", &angle );
  11.         haha( name );
  12.         sin_value( angle );
  13.         cos_value( angle );
  14. }
复制代码
----------------------------------------------------------分割线
haha.c:
  1. #include <stdio.h>
  2. int haha(char name[15])
  3. {
  4.         printf ("\n\nHi, Dear %s, nice to meet you.", name);
  5. }
复制代码
----------------------------------------------------------分割线
sin_value.c:
  1. #include <stdio.h>
  2. #define pi 3.14159
  3. float angle;

  4. void sin_value(void)
  5. {
  6.         float value;
  7.         value = sin ( angle / 180. * pi );
  8.         printf ("\nThe Sin is: %5.2f\n",value);
  9. }
复制代码
----------------------------------------------------------分割线
cos_value.c:
  1. #include <stdio.h>
  2. #define pi 3.14159
  3. float angle;

  4. void cos_value(void)
  5. {
  6.         float value;
  7.         value = cos ( angle / 180. * pi );
  8.         printf ("The Cos is: %5.2f\n",value);
  9. }
复制代码
----------------------------------------------------------分割线
  1. [root@www ~]# gcc -c main.c
  2. [root@www ~]# gcc -c haha.c
  3. [root@www ~]# gcc -c sin_value.c
  4. [root@www ~]# gcc -c cos_value.c
复制代码
我可以对main.c 和haha.c编译,但是对sin_value.c和cos_value.c编译的时候出错:
sin_value.c:8: warning: incompatible implicit declaration of built-in function 鈙in
cos_value.c:8: warning: incompatible implicit declaration of built-in function 鈉os?
红色的是乱码。。。。错误信息的大概含义是头文件的事情吧。。

我使用vim建立一个makefile更加不通过了:
  1. main:main.o haha.o sin_value.o cos_value.o
  2.         gcc -o main main.o haha.o sin_value.o cos_value.o
复制代码
----------------------------------------------------------分割线
  1. [root@localhost sin]# make
  2. cc    -c -o main.o main.c
  3. cc    -c -o haha.o haha.c
  4. gcc -o main main.o haha.o sin_value.o cos_value.o
  5. sin_value.o: In function `sin_value':
  6. sin_value.c:(.text+0x20): undefined reference to `sin'
  7. cos_value.o: In function `cos_value':
  8. cos_value.c:(.text+0x20): undefined reference to `cos'
  9. collect2: ld returned 1 exit status
  10. make: *** [main] Error 1
复制代码
请大家解惑,thanks a lot!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2012-06-28 15:33 |只看该作者
你在 sin_value.c  和 cos_value.c 中添加一个 #include <math.h>

在编译链接成可执行文件的时候,带一个 -lm 的参数。

论坛徽章:
0
3 [报告]
发表于 2012-06-28 15:41 |只看该作者
本帖最后由 snow888 于 2012-06-28 18:02 编辑

回复 2# snow888


你好,非常谢谢你的解答,问题正如您所说,加入math.h就可以编译了。
这个问题是在鸟哥私房菜第22章中的一个例子,不知道为什么,书中例子中直接编译而不会出现问题。。

这个是 C 语言的基本内容。你找一本 《C 语言大全》 看看就知道了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2012-06-28 18:43 |只看该作者
晕啊,能编辑别人的帖子了。

以后点编辑得小心了啊。

论坛徽章:
13
15-16赛季CBA联赛之同曦
日期:2016-01-28 19:52:032015亚冠之北京国安
日期:2015-10-07 14:28:19NBA常规赛纪念章
日期:2015-05-04 22:32:03处女座
日期:2015-01-15 19:45:44卯兔
日期:2014-10-28 16:17:14白羊座
日期:2014-05-24 15:10:46寅虎
日期:2014-05-10 09:50:35白羊座
日期:2014-03-12 20:52:17午马
日期:2014-03-01 08:37:27射手座
日期:2014-02-19 19:26:54子鼠
日期:2013-11-30 09:03:56狮子座
日期:2013-09-08 08:37:52
5 [报告]
发表于 2012-06-28 19:22 |只看该作者
@snow888最后一句话是你写的。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2012-06-28 22:02 |只看该作者
回复 5# ulovko


    嗯,本来是点回复去的,结果点成了编译,居然还能编辑别人的帖子了。

当时没在意,后来再看的时候发现了。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
7 [报告]
发表于 2012-06-29 08:29 |只看该作者
@snow888泥瓦现在是斑竹了,恭喜啊

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
8 [报告]
发表于 2012-06-29 10:03 |只看该作者
@chenyx哎,多指导,共同努力哈。

论坛徽章:
0
9 [报告]
发表于 2012-06-29 11:29 |只看该作者
回复 4# snow888


    晕了

论坛徽章:
0
10 [报告]
发表于 2012-06-29 11:30 |只看该作者
回复 4# snow888


    还是谢谢斑竹
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP