Gcc And MakeFile Level1】的更多相关文章

简单介绍gcc And make 的使用 基本编译 gcc a.c b.c -o exeName 分步编译 gcc -c a.c -o a.o gcc a.o b.c -o main.o 使用Makefile编译 vi Makefile #建立Makefile文件,必须是这个格式 make 内容如下 hello.out:max.o min.o hello.c #最上面的是main入口,main需要什么文件,列举出来,然后新行,tab,开始写gcc命令 gcc max.o min.o hello.…
Gcc的Makefile简单使用http://blog.chinaunix.net/uid-9330295-id-2425867.html…
gcc编译控制过程:(假设源代码为a.c)(1)源文件到预处理文件:    gcc -E -o a.cxx a.c    a.cxx显示调用哪些头文件(2)生成汇编代码:              gcc -S -o a.s a.c        a.s显示汇编指令(3)生成目标代码:              gcc -c -o a.o a.c(4)链接生成可执行文件:      gcc a.o -o aa.out gdb调试程序:(1)生成可执行程序:    gcc -g -o a.debu…
相关学习资料 http://gcc.gnu.org/ https://gcc.gnu.org/onlinedocs/ http://zh.wikipedia.org/zh/GCC http://blog.csdn.net/casularm/article/details/316149 http://www.bccn.net/Article/kfyy/cyy/jc/200409/9.html http://linux.chinaunix.net/techdoc/develop/2008/12/16…
2015.1.22 c高级的环境搭建:GCC编译器:全称 GNU CC,是GNU工具(tool chain)的一种,源码编译成机器码,gcc的编译依赖于很多小工具4.3.3和3.4.3版本的比较稳定 GCC编译分为四个步骤:(用WC命令可以分别查看每个阶段代码的大小,可以比较一下,ls -l 也能看出大小) 1.预处理 ->cpp预处理文件*.i gcc -E2.编译 ->cc1汇编文件*.s gcc -S3.汇编 ->as汇编文件*.o gcc -c4.链接 ->ld可执行文件*…
使用gcc编译程序是,其过程主要分为四个阶段:预处理,编译,汇编,连接 程序清单: #include<stdio.h> #include<stdlib.h> int main(int argc,char** argv) { printf("Hello Linux ,i am coming---------------\n"); ; } 1.预处理(cpp):生成 *.i 的预处理文件,该过程只激活预处理,不生成文件,所以需要重定向一个输出文件 使用指令 -E,如…
一.确认已经装好了GCC和Make的软件包 可以使用whereis命令查看: 如果whereis  gcc和whereis  make命令有结果,说明安装了这两个软件,可以继续往下做. 二.使用GCC编译运行一个HelloWorld程序(只涉及单个文件) 可以在任何一个目录编写C程序然后编译运行,我这个实例在自己主目录进行: 然后就进入了编写程序的界面: 按下键盘”i”进入编辑界面,然后输入程序: 按ESC(进入命令行模式),然后输入”:wq”,冒号表示开始输入命令,字母w代表保存文件,字母q代…
1.Makefile的应用 我们主要用它来编译源代码,生成结果代码,然后把结果代码连接起来生成可执行文件或者库文件.2.Makefle简单例子的深入学习 程序概述:为了连接makefile的流程,我将最简单的程序“hello wrold!”分成两个.c文件,并最终在main中进行编译. 以下都是对同个文件进行makefile的编译,知识makfile编写回比较贴近shell脚本的语法 如果没有指定输出项目的时候Make会自动找到makefile中第一个目标中没有通配符的目标进行构造,所以步骤是:…
http://blog.csdn.net/haoel/article/category/9197 http://blog.csdn.net/haoel/article/details/2886  生成静态库:ar -rc ex.a ex0.o ex1.o exN.o ... 添加符号表:ar -s ex.a 删除成员:ar -d ex.a exN.o 显示内容:ar -tv ex.a GCC 编译器选项 -o 指定生成的文件的名称 -c 生成 object 文件,不链接 -S 只生成汇编文件 -…
http://www.crazyant.net/2011/10/29/linux%E4%B8%8Bgcc%E5%92%8Cmakefile%E5%AE%9E%E4%BE%8B%EF%BC%88%E4%BB%8Egcc%E7%9A%84%E7%BC%96%E8%AF%91%E5%88%B0makefile%E7%9A%84%E5%BC%95%E5%85%A5%EF%BC%89/ 很给力的说,回头去搞搞!…
1.GCC程序编译 Linux系统下的gcc(GNUCCompiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%. GCC编译器能将C.C++语言源程序.汇编程序编译.链接成可执行文件.在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件. 使用GCC编译程序时,编译过程可以被细分为四个阶段: v预处理(Pre-Processin…
源:cygwin的安装,vi的使用,gcc,g++的使用 Gcc的Makefile简单使用…
经过这次地库项目之后,虽然时间不久,跟团队在一起,虽然队员不一定在技术上有过人之处,但是来自大公司的员工,在工具使用和代码规范方面还是有点可鉴之处,在搭建主控模块是,就得面临makefile编写,因为所有的功能模块都得自己实现,所以使得我不得不熟练下makefile,至少在以后的项目中,能用上自己写的模板! 在默认的方式下,也就是我们只输入make命令.那么, 1.make会在当前目录下找名字叫“Makefile”或“makefile”的文件.    2.如果找到,它会找文件中的第一个目标文件(…
Makefile的工作流程 http://c.biancheng.net/view/7091.html Makefile文件是什么? 我们教程主要是讲的是 Makefile .很多 Linux(Unix) 做开发的初学者不了解 Makefile 是什么,甚至大部分 Windows 开发工程师对 Makefile 都特别陌生.这个其实很正常,如果你是在 Windows 下作开发的话不需要去考虑这个问题,因为 Windows 下的集成开发环境(IDE)已经内置了 Makefile,或者说会自动生成…
来源 https://www.gnu.org/software/make/manual/make.pdf 简单的例子 其中的cc通过链接,间接指向/usr/bin/gcc. Makefile文件中列出了依赖关系.默认执行第一行. 其中,下面两行等价 使用变量简化 添加objects变量后,形成以下简化形式.内容不变. 使用默认编译简化 无需详细说明编译单个C源文件的方法,因为make可以解决这些问题.如main.o,kdb.o等. 其中的.PHONY用于防止make被一个名为clean的实际文件…
在讨论全局变量之前我们先要明白几个基本的概念: 1. 编译单元(模块):    在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了…
系统求助 man 函数名 man 2 函数名    -    表示函数是系统调用函数 man 3 函数名    -    表示函数是C的库函数     eg:man fread     man 2 write  如果我们要write这个函数的说明,当我们执行man write时,输出的结果却不是我们所需要的. 因为我们要的是write这个函数的说明,可是出来的却是write这个命令的说明.为了得到write的函数说明 我们要用 man 2 write. 2表示我们用的write这个函数是系统调用…
在讨论全局变量之前我们先要明白几个基本的概念: 1. 编译单元(模块):    在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了…
解压u-boot-2010.03.tar.bz2就可以得到全部U-Boot源程序.在顶层目录下有29个子目录,分别存放和管理不同的源程序.这些目录中所要存放的文件有其规则,可以分为3类. ● 与处理器体系结构或者开发板硬件直接相关.     ● 一些通用的函数或者驱动程序.     ● U-Boot的应用程序.工具或者文件. 表1.5列出了U-Boot顶层目录下各级目录的存放原则. 表1.5 U-Boot的源码顶层目录说明 目 录 特 性 解 释 说 明 board 平台依赖 存放电路板相关的目…
新版本—— http://www.cnblogs.com/zyl910/p/zlstdint_v100.html[C] zlstdint(让VC.TC等编译器自动兼容C99的整数类型)V1.0.支持Turbo C++ 3等DOS下的编译器 作者:zyl910 一.改动简介 V1.02版的改动如下—— 将源码上传到github. 调整目录结构. 添加CMake编译配置文件. 使用doxygen规范注释. 修正 __AUTO_STDINT_H_USESYS 误为 _INTTYPES_H_SYS_ 的…
简介 如今用于项目管理和自动化构建的东东用的比较多的,比如: eclipse中用到的ant 现今流行的android studio中用到的gradle 这里将介绍另一种工具——maven (也可以用来构建android项目)! Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理软件,如今越来越多的项目开始使用这种工具,大小项目都有. 主要功能可分为三类: 项目自动化构建 版本控制 依赖管理 Maven能够很方便的帮你管理项目报告,生成站点,管理J…
在讨论全局变量之前我们先要明白几个基本的概念: 1. 编译单元(模块):    在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具上编写完代码,点击编译按钮准备生成exe文件时,VC其实做了两…
       我前面说了很多如何用gcc或 Makefile怎么编译的东东,但在Linux下装过软件的都应当见过,很多源码安装的包是用Automake 来编译的.输入下"./configure","make","make install"就装上了.Automake就是有群人觉得写Makfile不方便,特别是工程文件多 目录复杂时.所以就搞了这么个自动生成Makefile的开源的东东.类似的工具还有cmake和qmake.      Automak…
学习材料取之这个网址:http://blog.chinaunix.net/uid-27717694-id-3696246.html 学习环境:ubuntu10.04-64bit-desktop版,gcc-4.4.3 实际操作时考虑到方便性采用:Cygwin Terminal + source Insight3.5学习 首先贴上Makefile文件 edit : main.o kbd.o command.o display.o insert.o search.o files.o utils.o c…
gcc+gdb+makefile+vi是一套组合,不能单纯的拆分开来学习. gcc主编译单个文件 gdb调试 makefile用于大型工程解决不同源文件的依赖关系 vi/emacs是编辑器 如果有条件oracle,没有条件mysql至少要学好 linux主要用于服务器端,所以网络通信方面的知识也要具备. 系统操作方面基本命令,shell是提高运维效率的工具 至于语言选择,c入门是不二的选择,然后多学一门脚本语言,perl /python 作者:郑明铭链接:https://www.zhihu.co…
yum工具的使用 ---------- yum list|head -n 10会有一个报错:由于管道被破坏而退出-----------搜索名字为vim的rpm包yum search vim使用grep也可以实现相同的搜索功能yum list | grep 'vim'----------安装一个protobuf-vim 的rpm包yum install -y protobuf-vim卸载刚我们安装的protobuf-vim 的rpm包yum remove protobuf-vim---------…
IBDAP-CMSIS-DAP Armstart's CMSIS-DAP firmware implementation in gcc and makefile. http://www.armstart.com IBDAP is a fully CMSIS-DAP compatible debug adapter. It provides vendor independent debug interface between your PC over USB and target ARM devi…
摘要: Linux系统区分32/64位,相应地,应用程序.共享库和内核模块也区分32/64位. 本文以Ubuntu系统为例,介绍如何编译和使用32/64位的应用程序.共享库和内核模块. 1. 应用程序 要点: 使用gcc编译器的-m32和-m64选项指定编译成32位或64位应用程序,编译时需要使用32/64位库,因此编译前需要安装对应的库. 在64位系统上,可以执行64位和32位应用程序.在32位系统上,只能执行32位应用程序,不能执行64位应用程序. 1.1 64位系统上编译应用程序 在64位…
出自:http://www.cnblogs.com/yaozhongxiao/archive/2010/08/08/1795338.html 在讨论全局变量之前我们先要明白几个基本的概念:  1. 编译单元(模块): 在ide开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误 (link error)  因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用 gcc,makefile等工具在linux或者嵌入…
转自:http://www.cnblogs.com/yaozhongxiao/archive/2010/08/08/1795338.html 1. 编译单元(模块): 在ide开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(link error)  因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌入式下做开发工作的话,那么你可能非常的理解编译与连接的区…