Linux之gcc(g++)多文件编译问题

来源:互联网 发布:mac单机游戏下载网站 编辑:程序博客网 时间:2024/05/11 16:01

文章来源:http://blog.chinaunix.net/uid-20682749-id-2238158.html
1.简单程序(单模块程序)的编译
文件file1.c

#include int main(){        printf("hello\n");        return 0;}

文件file1.

#include<iostream>using std::cout;using std::endl;int main(){        cout<<"hello"<<endl;               return 0;}
[xiaochen@freeware ~]$ gcc file1.c -o file1[xiaochen@freeware ~]$ g++ file1.cpp -o file1_cpp[xiaochen@freeware ~]$ ./file1 hello[xiaochen@freeware ~]$ ./file1_cpphello

对于只有一个文件的c/c++用GCC/G++来编译很容易

对于多个文件即多个模块的程序来说,其实也并不是很难.
2.多模块程序的编译
下面举个例子:
文件first.h

int first();

文件first.c

#include #include "first.h"first(){    printf("this is just a test!");    return 0;}

文件second.h

int mymax(int,int);文件second.cmymax(x,y){    if(x>y)        return x;    else         return y;}

文件main.c

#include "first.h"#include "second.h"#include int main(){    int a,b;    a=10;    b=20;       first();    printf("%d\n",mymax(a,b));    return 0;}

下面是在终端中输入的内容

[xiaochen@freeware ~]$ gcc -c first.c[xiaochen@freeware ~]$ gcc -c second.c[xiaochen@freeware ~]$ gcc -c main.c[xiaochen@freeware ~]$ gcc first.o second.o main.o -o main[xiaochen@freeware ~]$ ./mainthis is just a test!20

当然啦也可以这么输入

[xiaochen@freeware ~]$ gcc first.c second.c main.c -o main

不过以上的方法不是很好,因为对于文件数不是很多的程序,手动输入以上几个命令还不是很累,但如果是个文件数很多的程序呢,如果这样输入,那肯定会很累.

对于模块数很多程序,我们可以写一个makefile文件.然后使用make命令就可以了.

0 0
原创粉丝点击