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

1.简单程序(单模块程序)的编译

文件file1.c

#include <stdio.h> 
int main()
{
        printf("hello\n");
        return 0;
}

文件file1.cpp

#include <iostream>
using namespace std;

int main()
{
        cout<<"hello"<<endl;
        return 0;
}

编译运行

$ gcc file1.c -o file1
$ g++ file1.cpp -o file1_cpp
$ ./file1 
hello
$ ./file1_cpp
hello

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

对于多个文件即多个模块的程序来说,其实也并不是很难.

2.多模块程序的编译

下面举个例子:
文件first.h

int first();

文件first.c

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

文件second.h

int mymax(int,int);

文件second.c

mymax(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;
}

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

$ gcc -c first.c
$ gcc -c second.c
$ gcc -c main.c
$ gcc first.o second.o main.o -o main
$ ./main
this is just a test!20

当然啦也可以这么输入

$ gcc first.c second.c main.c -o main

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

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

原文地址

http://blog.chinaunix.net/uid-20682749-id-2238158.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值