编译器输出格式的问题,向大家请教。

mmtang3 2005-10-28 08:54:34
gnu的编译器,可以通过指定编译参数,而确定输出目标文件的格式吗?
如Tornado 2的ccppc编译后的目标文件(*.o)格式是elf的,
而cc386的编译结果是a.out的。如何指定目标文件格式。
...全文
245 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmtang3 2005-11-08
  • 打赏
  • 举报
回复
谢谢大家.结贴了,
newbiestar 2005-10-29
  • 打赏
  • 举报
回复
靠!说漏,是GNU的linker(执行文件名是ld的那个)可以认识a.out格式的object file
K 2005-10-29
  • 打赏
  • 举报
回复
手册里没有
newbiestar 2005-10-29
  • 打赏
  • 举报
回复
楼上你能不能分清楚文件名和可执行文件格式这两个概念啊?
SurmountLi 2005-10-29
  • 打赏
  • 举报
回复
tornado 安装目录下的 doc\gnu\ c c++ compile 一章,应该说明的.
SurmountLi 2005-10-29
  • 打赏
  • 举报
回复
GCC 选项

GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但一些主要的选项将会频繁用到. 很多的 GCC 选项包括一个以上的字符. 因此你必须为每个选项指定各自的连字符, 并且就象大多数 Linux 命令一样你不能在一个单独的连字符后跟一组选项. 例如, 下面的两个命令是不同的:

gcc -p -g test.c


gcc -pg test.c

第一条命令告诉 GCC 编译 test.c 时为 prof 命令建立剖析(profile)信息并且把调试信息加入到可执行的文件里. 第二条命令只告诉 GCC 为 gprof 命令建立剖析信息.


当你不用任何选项编译一个程序时, GCC 将会建立(假定编译成功)一个名为 a.out 的可执行文件. 例如, 下面的命令将在当前目录下产生一个叫 a.out 的文件:

gcc test.c

你能用 -o 编译选项来为将产生的可执行文件指定一个文件名来代替 a.out. 例如, 将一个叫 count.c 的 C 程序编译为名叫 count 的可执行文件, 你将输入下面的命令:

gcc -o count count.c
newbiestar 2005-10-29
  • 打赏
  • 举报
回复
楼上所给出的和楼主要求的相差十万八千里……

gcc 3.4.2好像没有这样的选项,至少我在gcc的manual里面没有找到(如果我没有找错的话,那么即使有这样的选项,也是非公开的……)

不过GNU好像还是可以认识a.out的object file的……
jsjjms 2005-10-29
  • 打赏
  • 举报
回复
????????
jixingzhong 2005-10-29
  • 打赏
  • 举报
回复
应该是没有的吧 ...
我啃 2005-10-29
  • 打赏
  • 举报
回复
倒,在编译器的参考参数手册中没有提到啊
SurmountLi 2005-10-28
  • 打赏
  • 举报
回复
编译选项中有个 -o 是指定编译结果的名字的.
比如:
cc -c a.c -o a.o -fpack-struct ....

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧