易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++程序编译步骤详解


C/C++语言很多人都比较熟悉,这基本上是每位大学生必学的一门编程语言,通常还都是作为程序设计入门语言学的,并且课程大多安排在大一。刚上大学,孩子们还都很乖,学习也比较认真,用心。所以,C/C++语言掌握地也都不错,不用说编译程序,就是写个上几百行的程序都不在话下,但是他们真的知道C/C++程序编译的步骤么?
我想很多人都不甚清楚,如果他接下来学过“编译原理”,也许能说个大概。VC的“舒适”开发环境屏蔽了很多编译的细节,这无疑降低了初学者的入门门槛,但是也“剥夺”了他们“知其所以然”的权利,致使很多东西只能死记硬背,遇到相关问题就“丈二”。实际上,我也是在学习Linux环境下编程的过程中才逐渐弄清楚C/C++源代码是如何一步步变成可执行文件的。
总体来说,C/C++源代码要经过:预处理、编译、汇编和连接四步才能变成相应平台下的可执行文件。大多数时候,程序员通过一个命令就能完成上述四个步骤。比如下面这段C的“Hello world!”代码:
File: hw.c
#include <stdio.h>
int main(int argc, char *argv[])
{
        printf("Hello World!\n");
        return 0;
}
如果用gcc编译,只需要一个命令就可以生成可执行文件hw:
xiaosuo@gentux hw $ gcc -o hw hw.c
xiaosuo@gentux hw $ ./hw Hello World!
我们可以用-v参数来看看gcc到底在背后都做了些什么动作:
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/specs
Configured with: /var/tmp/portage/sys-devel/gcc-3.4.6-r2/work/gcc-3.4.6/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.4.6 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.4.6/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/include/g++-v3 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-libunwind-exceptions --disable-mul


相关文档:

用php的c扩展编程调用 c程序的动态链接库


一.    首先做一个简单的so文件:
    /**
     * hello.c
     * To compile, use following commands:
     *   gcc -O -c -fPIC -o hello.o hello.c
     *   gcc -shared ......

求序列和的简单C程序

对于序列求和的程序大家不会陌生,而我今天看到的这个程序个人觉得比较好,所以贴上来共享一下。
要求:输入类似于87 98 67 56 0的任意序列,但是以零结尾。然后输出序列的和。
程序如下 :
/********************************************
 * Name : sum.c
 * Purpose : sum
 * Author : zimo
  ......

C/C++中结构体(struct)知识点强化(三)

C/C++中结构体(struct)知识点强化(三)
出处:PConline 2005年03月07日 作者:管宁 责任编辑:xietaoming
 
我们以上面的程序为基础,但为了我们方便学习删除我们休整结构体为
struct test
{
int number;
float socre;
test *next;
};
  number为唯一的编号每一个节点的。
  删除的我就不多说了 ......

lua和c的交互


extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
 
#include <iostream>
#include <string>
using namespace std;
    
int main()
{
    //Lua示例代 ......

VIM+GDB linux c/c++ 的编程利器

 VIM+GDB linux c/c++ 的编程利器
http://blog.csdn.net/jackyvan/archive/2010/01/15/5193693.aspx
其实VIM也能把编译 调试集成在一起,像是一个IDE一样。
首先现在VIM的源码,因为要集成调试环境的话需要重新编译VIM才行,所以我们不如重新安装一个。
VIM的现在地址:
http://www.vim.org/sources.php
然后下 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号