关于用gcc进行c语言编译的一些问题

为当前最终发行版之前的所有版本提供支持
回复
gl4215269
帖子: 29
注册时间: 2010-02-17 22:45
送出感谢: 0
接收感谢: 0

关于用gcc进行c语言编译的一些问题

#1

帖子 gl4215269 » 2011-03-21 14:28

其实我自己都感觉有点乱~;
以前在windows下用VC编译的时候 习惯性的用void main();
现在学习用gcc 编译文件我用的是void main 它就会提示我(编译时开启里-Wall)
warning: return type of ‘main’ is not ‘int’
In function ‘main’:
开始不明白什么情况~~就到网上查 查的结果是说 void main本身就是错误的根本就没有这样的,
main()的默认返回值是int型的;
然后我没办法了~~我就用int main() 在语句结束之前我还会加上 return 0;
有的是后这样就可以了 ~但是有时候又会弹出错误
warning: return type of ‘main’ is not ‘int’ 有点小纠结。。弄不明白怎么回事~


还有就是我在gcc中调用数学函数 网上搜索的结果是 调用数学函数库 需要在编译的时候加入-lm
比如我编译文件10.c gcc -Wall 10.c -o -lm
但是还是弹出里错误(.text+0xcc): undefined reference to `sqr';
哪位大虾能给解释下啊~非常感谢
gl4215269
帖子: 29
注册时间: 2010-02-17 22:45
送出感谢: 0
接收感谢: 0

Re: 关于用gcc进行c语言编译的一些问题

#2

帖子 gl4215269 » 2011-03-21 14:50

=。=没人回复。。。求答案。。。求大虾帮助
头像
灰色小狼
帖子: 4573
注册时间: 2008-12-06 10:38
系统: Arch
送出感谢: 21 次
接收感谢: 30 次

Re: 关于用gcc进行c语言编译的一些问题

#3

帖子 灰色小狼 » 2011-03-21 15:17

调用数学函数库只要#include <math.h>就行了,只听说过sqrt,没听说过sqr
main那个木见过
gl4215269
帖子: 29
注册时间: 2010-02-17 22:45
送出感谢: 0
接收感谢: 0

Re: 关于用gcc进行c语言编译的一些问题

#4

帖子 gl4215269 » 2011-03-21 15:20

灰色小狼 写了:调用数学函数库只要#include <math.h>就行了,只听说过sqrt,没听说过sqr
main那个木见过
sqrt。。是我弄错了。。。
头像
pocoyo
论坛版主
帖子: 25878
注册时间: 2008-03-25 15:49
来自: 谁知道?
送出感谢: 5 次
接收感谢: 9 次
联系:

Re: 关于用gcc进行c语言编译的一些问题

#5

帖子 pocoyo » 2011-03-21 15:55

~但是有时候又会弹出错误
warning: return type of ‘main’ is not ‘int’ 有点小纠结。。
举个例子出来白
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 关于用gcc进行c语言编译的一些问题

#6

帖子 eexpress » 2011-03-21 16:20

就是main必须要返回int嘛。
不要用void。
● 鸣学
头像
crazyyujie
帖子: 159
注册时间: 2010-04-07 17:49
送出感谢: 0
接收感谢: 0
联系:

Re: 关于用gcc进行c语言编译的一些问题

#7

帖子 crazyyujie » 2011-03-21 17:50

int main;
然后 return 1;
不就可以了。
ilsoviet1917
帖子: 270
注册时间: 2009-11-11 23:13
送出感谢: 3 次
接收感谢: 0

Re: 关于用gcc进行c语言编译的一些问题

#8

帖子 ilsoviet1917 » 2011-04-01 17:08

那就按照标准来吧
int main (void)
同志们,多年的战争使你们踏遍整个欧洲,前方就是华盛顿白宫,到那里去洗刷你们战争的躯体吧!
头像
懒蜗牛Gentoo
论坛版主
帖子: 7284
注册时间: 2007-03-02 17:36
送出感谢: 0
接收感谢: 95 次

Re: 关于用gcc进行c语言编译的一些问题

#9

帖子 懒蜗牛Gentoo » 2011-04-01 17:45

标准是int main (int argc, char * argv[]) 吧
虽然世上没有完美的东西,但这并不影响我们追求完美,因为只有偏执狂才TMD能成功。
10.04新手入门——笨兔兔讲述自己的故事
SivaCoHan
帖子: 101
注册时间: 2010-12-11 12:09
送出感谢: 0
接收感谢: 0

Re: 关于用gcc进行c语言编译的一些问题

#10

帖子 SivaCoHan » 2011-04-01 18:28

int main(){
return 0;
}

我是这么写的
gcc -Wall a.c
生成a.out
ALanQ
帖子: 10
注册时间: 2011-03-29 22:46
送出感谢: 0
接收感谢: 0

Re: 关于用gcc进行c语言编译的一些问题

#11

帖子 ALanQ » 2011-04-02 18:22

main的问题是因为标准化的问题,最新的标准就上写的就是int main(),最后retren 0;VC支持老版本的写法,gcc比较严格,不行的话就用标准就可以了,最后有用标准的习惯。
分享是一种态度。
头像
自由建客
论坛版主
帖子: 13436
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: 关于用gcc进行c语言编译的一些问题

#12

帖子 自由建客 » 2011-04-02 18:59

gl4215269 写了: 然后我没办法了~~我就用int main() 在语句结束之前我还会加上 return 0;
有的是后这样就可以了 ~但是有时候又会弹出错误
warning: return type of ‘main’ is not ‘int’ 有点小纠结。。弄不明白怎么回事~
没碰到过你说的有时候,除非前面写的还是 void main() ,后面又写了 return 0 。仔细看看。
回复

回到 “老旧版本支持”