BBS.ChinaUnix.net
今日推荐    首页 | 新闻 | Linux | AIX | 博客 | 论坛 | 存储 | 人才 | 培训 | 知识库 | 资料 | 读书 | 手册 | 精华 | 下载 | 空间     
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


[C] 求教个arm-linux-gcc的问题
首页 » 论坛 » C/C++ »  
[打印] [订阅] [收藏] [推荐给朋友] [本帖文本页]
wliang511
侠客




UID:694041
注册:2008-4-19
最后登录: 2008-07-09
帖子:49
精华:0

可用积分:49
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
1楼 发表于 2008-5-15 18:48 
/****改了下标题,原来arm-linux-gcc 和 gcc是两码事,呵呵。gcc是linux下的c语言编译器,arm-linux-gcc是交叉编译,gcc编译出来的程序在本地执行 ,arm-linux-gcc编译出来的程序在目标机(ARM平台)上执行,嵌入式应该用交叉编译器(如果不是在ARM本身上开发)

第2个问题是我理解错了,其实好象都是编译成可执行文件的,只不过arm-linux-gcc编译出来的程序要到特定的硬件环境才能运行。开始我是把连接后的文件,直接在编译的硬件环境(linux/x86)下运行,结果不能运行,我就以为生成的不是可执行文件,结果拿到目标机上就可以运行了(linux/arm环境),偶实在太菜了,路漫漫。。那个啥远兮""****/

平时用gcc编译,也就知道2个步骤:

1。gcc -c 编译成目标文件
2。gcc -o 将目标文件连接成一个可以自己命名的可执行文件。

然后,就是自己编个程序,没有main()函数的话,就会在第2步的时候报错。

有2个问题:
1。现在一般的大型程序,比如那些商用程序,好象没有main()函数啊(或者有,一般看不到?),为什么不会报错呢,那这些程序的入口函数又是怎么设定的呢?
2。一般来说编译最后都是生成的2进制文件,而不是可执行文件,然后烧到FLASH里程序就可以跑了。这个2进制文件是不是直接把.s文件通过gcc -o输出到一个文件里得到的。。但是好象又链接了静态库的。


因为现在的makefile都是他们做的工具自动生成的,感觉很多地方看不到。

[ 本帖最后由 wliang511 于 2008-5-15 23:43 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
wliang511
侠客




UID:694041
注册:2008-4-19
最后登录: 2008-07-09
帖子:49
精华:0

可用积分:49
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
2楼 发表于 2008-5-15 19:04 
是不是我想偏了,导致这个问题不着边际?哪位大人指点下啊...



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
版主 cjaizss   帅哥
版主-精灵使



UID:272747
注册:2005-5-26
最后登录: 2008-07-09
帖子:4329
精华:1

可用积分:341
信誉积分:100
专家积分:10 (本版)

状态:...保密...

[个人空间] [短信] [博客]


顶部
3楼 发表于 2008-5-15 19:18 
最后烧到flash里?你是说嵌入式?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

二十几年来最大的遗憾,并不是少赚了的钱,也不是少交了友,而是永远没有机会为最钟爱的数学真正做点什么,或许这会是这一生的遗憾
做个合格的电子工程师,其实很难

CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
chinaljj   帅哥
侠客




UID:293533
注册:2005-7-20
最后登录: 2008-05-27
帖子:48
精华:0

可用积分:49
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
4楼 发表于 2008-5-15 19:24 


QUOTE:
原帖由 wliang511 于 2008-5-15 18:48 发表
1。现在一般的大型程序,比如那些商用程序,好象没有main()函数啊(或者有,一般看不到?),为什么不会报错呢,那这些程序的入口函数又是怎么设定的呢?

你有见过没有main()函数的c/c++程序可以运行??!



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
版主 MMMIX
广告杀手-法师




UID:342513
注册:2005-11-28
最后登录: 2008-07-08
帖子:6690
精华:0

可用积分:6406
信誉积分:100
专家积分:0 (本版)

状态:...保密...

[个人空间] [短信] [博客]


顶部
5楼 发表于 2008-5-15 19:44 


QUOTE:
原帖由 chinaljj 于 2008-5-15 19:24 发表


你有见过没有main()函数的c/c++程序可以运行??!

这个当然是可以了,只不过你自己需要在 linker/loader 上做手脚。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

天地不仁, 以万物为刍狗!
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
wliang511
侠客




UID:694041
注册:2008-4-19
最后登录: 2008-07-09
帖子:49
精华:0

可用积分:49
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
6楼 发表于 2008-5-15 20:18 


QUOTE:
原帖由 chinaljj 于 2008-5-15 19:24 发表


你有见过没有main()函数的c/c++程序可以运行??!

见过啊,原来用C做的项目都没见到过main(),我的理解是:每个应用程序是不是都有个象main()一样的入口函数呢?如果是,那么在哪个地方可以把这个函数设定为入口函数?如果不是,那我的理解就完全错了,问的问题就真的是不着边际了,原来写程序的时候,只关心应用层,,真是报应。

[ 本帖最后由 wliang511 于 2008-5-15 20:19 编辑 ]



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
wliang511
侠客




UID:694041
注册:2008-4-19
最后登录: 2008-07-09
帖子:49
精华:0

可用积分:49
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
7楼 发表于 2008-5-15 20:19 


QUOTE:
原帖由 MMMIX 于 2008-5-15 19:44 发表

这个当然是可以了,只不过你自己需要在 linker/loader 上做手脚。

请问这个是在哪里呢?有没相关资料可以查?



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
wliang511
侠客




UID:694041
注册:2008-4-19
最后登录: 2008-07-09
帖子:49
精华:0

可用积分:49
信誉积分:0
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
8楼 发表于 2008-5-15 20:22 


QUOTE:
原帖由 cjaizss 于 2008-5-15 19:18 发表
最后烧到flash里?你是说嵌入式?

是的。机顶盒,linux环境,刚接触,太多不懂了。



您对本贴的看法:鲜花[0] 臭蛋[0]
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
版主 cjaizss   帅哥
版主-精灵使



UID:272747
注册:2005-5-26
最后登录: 2008-07-09
帖子:4329
精华:1

可用积分:341
信誉积分:100
专家积分:10 (本版)

状态:...保密...

[个人空间] [短信] [博客]


顶部
9楼 发表于 2008-5-15 20:50 
linux?应用程序自然要用main(C语言标准)来做入口,想方设法不用man做入口的,那我实在不知道开发者把心思用到什么地方去了。要么是就是驱动,bootloader,kernel.



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

二十几年来最大的遗憾,并不是少赚了的钱,也不是少交了友,而是永远没有机会为最钟爱的数学真正做点什么,或许这会是这一生的遗憾
做个合格的电子工程师,其实很难

CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布
marco_hxj   帅哥
圣骑士
手动党主席


CU奥运火炬传递手2008
UID:563389
注册:2007-5-14
最后登录: 2008-07-09
帖子:102
精华:0

可用积分:988
信誉积分:100
专家积分:0 (本版)

状态:...离线...

[个人空间] [短信] [博客]


顶部
10楼 发表于 2008-5-15 21:48 
不知道楼主在说什么
嵌入式里要用arm-linux-gcc编译吧



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

我工程师啊,我都工程师三个礼拜了!
CU可用积分兑换Linux/Unix精品图书 |《Ubuntu标准教程》书评获奖名单公布

首页 » 论坛 » C/C++ »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.105630 second(s), 4 queries , Gzip enabled