当前位置:  技术问答>linux和unix

关于 GCC 的问题

    来源: 互联网  发布时间:2015-04-06

    本文导语:  本人一直工作于 WIN32、MFC AND ATL 下,现有些东东得用 GCC 来生成代码,哪位高手可以给本人说说 GCC 的开发环境的一些基本信息及操作要领。比如如何编译、连接成一个程序,如何定制编译。 | ...

本人一直工作于 WIN32、MFC AND ATL 下,现有些东东得用 GCC 来生成代码,哪位高手可以给本人说说 GCC 的开发环境的一些基本信息及操作要领。比如如何编译、连接成一个程序,如何定制编译。

|
已发,make的最新版官方手册。html和pdf版。
英文,自己看了。

|
《GNU/Linux高级编程》上边有一章讲Makefile的。

|
makefile的资料网上一堆堆,自己先搜一下好吗?如果不知道哪个好,先看看POSIX标准里的:http://www.opengroup.org/onlinepubs/007904975/utilities/make.html

GCC的开发环境很多,按照你的要求,你需要的只是autoconf系列工具,这个你可以去学习autobook(http://sources.redhat.com/autobook/)。不过你现在还没有掌握makefile,学习这个稍早,所以先看看上边的再开始学习autobook。一定要多试,多用。

|
1.关于高手。
我对高手的理解,就是对计算机的使用达到自由的境界(这是相对的,对于winOS上的自由同linux上的自由本身就不可同日而语),如果把OS比做舞台,那么在win这个舞台上,你永远是个蹩脚的跳舞师。具体破不破坏的问题是这里达到基本自由的高手本人道德的问题,跟技术没有关系吧。
2.关于gcc的使用平台
对于gcc许多知识浅薄的人认为是linux或win上边一些专业公司提供。我告诉你,你说的“我想 GCC 并非在 WIN 环境下不能使用”根本就不是并非,gcc现在已经可以以主机和目标机运行在几十种OS和十几种硬件平台上,包括win,dos。我现在就用gcc在win下写一些程序,包括可以用rsxntdj生成同winGUI程序相同的图形程序。
3.关于gcc的使用
你首先没有搞清make/gmake和gcc的关系。
首先make是用一个脚本变量系统来解决gcc命令行参数需重复输入的问题。
比如说
makefile已设定
CC=gcc
CFLAG=-I/usr/include -Wall -fomit-framepointer -O2
LDFLAG=-L/usr/lib -lc -lm
OBJECT=a.o b.o...
CPP=a.c b.c...
ALL:
CC CFLAG LDFLAG -o OBJECT CPP
调用make时就会生成gcc -I/usr/include -L/usr/lib -lc -lm -Wall -fomit-framepointer -O2 -o a.o b.o... a.c b.c
具体的命令行可以根据makefile里脚本执行过程动态改变.CFLAG,CPP,OBJECT变量变化就会改变编译命令行。而到底怎么去编写makefile除了make本身的脚本规则之外(比较简单)需要更多了解的是gcc的命令行选项。你不关心gcc而将重点放到了make本身就是本末倒置。
4.关于gcc的能力
我再废话几句,因为看到很多人将gcc看作是象tc一样而不平,它的能力远远超过了VC6--7。
a.移植能力上面已经有讲。
b.编译能力:gcc可以支持编译等级,只要加不同的参数就可以让gcc生成从C(CPP)--->OBJC--->ASM--->OBJ--->EXEBIN(各种格式) 的编译链中的任何一个阶段的输出。其中OBJC是C(CPP)经编译预处理后的输出(还是C代码)。并且支持目标平台代码输出。
c.效能:gcc的产生的代码效能高而且严谨。过去很多人在编译程序时和产生的exe有问题,就将它作为BUG向gcc小组报告,但后来都被证明是不同硬件的问题,包括内存,cpu。后来就有人专门用它来检测硬件。
d.先进性:如果你认为c语言是一成不变的就错了。我们通常所说的ANSI C就是C标准,而课本里学的C其实是C77标准的子集。其后ISO又出版了C89,C95,C99。而C99包含对C语言一些弊端的最新修正,和对C语言功能和标准库的扩充的最新版。而据我所知,GCC-3.3是第一个真正开始支持C99标准的编译器。
e.多语言支持:gcc以单独模块的形式支持现在主流的编程语言:C,C++,FORTRAIN,ADA,PASCAL,JAVA。

|
gcc 的入门开发环境为 vim ,下面这片文章有简单介绍(要想完全掌握也不容易哟),包括编辑和编译等,定制编译你是指加入编译参数吗?用make makefile 命令会有很大帮助.

vim  http://www.lslnet.com/linux/docs/linux-3266.htm

make http://www.chinaunix.net/bbsjh/12/1033.html

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下GCC内置原子操作函数(多线程资源访问)介绍
  • 使用popen来执行gcc命令,如何根据读出来的gcc的输出来判断gcc是否编译成功?
  • 命令:mips_fp_le-gcc,mipsel-gcc 是什么意思?跟一般的gcc有什么区别?
  • 怎样升级我的GCC呀,我用的RH7.2,GCC 2.96 ,我从网上下载了一个gcc-3.2.3.tar.gz
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • gcc-ccore、avr-gcc及arm-gcc的区别
  • gcc在哪里?bash:gcc:command not found
  • 如何删掉GCC3.0(我需要GCC2.0-----)
  • Windows版GCC TDM-GCC
  • 急问:如何卸掉gcc 3.2庄gcc 2.96
  • 有人遇到过吗,在安装GCC时提示,"checking gcc ...no "
  • gcc编译时出错,gcc: installation problem, cannot exec `as': 没有那个文件或目录!!!求助呀呀!!!!!
  • Solaris8,安装了iconv,gcc和gcclib,然后用gcc编译c程序出错。
  • 一套未安装gcc的Linux中安装gcc rpm包时时出现错误
  • 下了一个GCC3.0包用tar xjfv gcc-3.0.tar.bz2解压后出现一堆文
  • 请问如何安装rpm格式的gcc如gcc-3.2.2-5.src.rpm,谢谢
  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • 在redhat9下,如何将gcc3.x改为gcc2.x?
  • linux x86_64下由于拷贝gcc的lib目录导致gcc编译器出错
  • 我在Solaris8上安装了gcc3.3Solaris8,但是总是出错!错误如下:gcc: syntax error at line 1: `(' unexpected
  • 求助:当用 gcc 编译时没,加上优化选项 -02 ,可是提示是 gcc: unrecognized option `-02'


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3