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

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
gl4215269
帖子: 29
注册时间: 2010-02-17 22:45

关于用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

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

#2

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

=。=没人回复。。。求答案。。。求大虾帮助
头像
灰色小狼
帖子: 4585
注册时间: 2008-12-06 10:38
系统: Arch

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

#3

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

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

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

#4

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

灰色小狼 写了:调用数学函数库只要#include <math.h>就行了,只听说过sqrt,没听说过sqr
main那个木见过
sqrt。。是我弄错了。。。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#5

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

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

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

#6

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

int main;
然后 return 1;
不就可以了。
ilsoviet1917
帖子: 270
注册时间: 2009-11-11 23:13

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

#7

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

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

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

#8

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

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

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

#9

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

int main(){
return 0;
}

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

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

#10

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

main的问题是因为标准化的问题,最新的标准就上写的就是int main(),最后retren 0;VC支持老版本的写法,gcc比较严格,不行的话就用标准就可以了,最后有用标准的习惯。
分享是一种态度。
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

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

#11

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

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