makefile的编写

file1.h代码:

#ifndef FILE1_H_
#define FILE1_H_
#ifdef _cplusplus
    extern "C"{
        #endif
        void File1Print();
        #ifdef _cplusplus        
    }
    #endif
#endif

file.cpp的代码

#include<iostream>
#include "file1.h"
using namespace std;
void File1Print()
{
    cout << "Print file1*****************" << endl;
}

file2.cpp的代码

#include<iostream>
#include "file1.h"
using namespace std;

int main()
{
    cout << "Print file2****************" << endl;
    File1Print();   
    return 0;
}

makefile的代码


//每个命令行前必须有tab符号
/*
A : B
(tab)<command>
(tab)<command>
*/

//hellloworld 依赖file1.o file2.o两个目标文件
helloworld : file1.o file2.o
        g++ file1.o file2.o -o helloworld
file2.o : file2.cpp
        //-c表示g++只把给它的文件编译成目标文件,使用源文件的名字,但将其后缀改为".o"
        g++ -c file2.cpp 

file1.o : file1.cpp file1.h
        g++ file1.cpp -o file1.o

clean:
        //make clean,删除*.o 和 helloworld
        rm -rf *.o helloworld

版本二:

OBJS = file1.o file2.o 
XX = g++ 
//-O编译时优化
CFLAGS = -Wall -O -g

helloworld : $(OBJS)
        $(XX) $(OBJS) -o helloworld

file1.o : file2.cpp 
        $(XX) $(CFLAGS) -c file1.cpp -o file1.o 
file2.o : file1.cpp file1.h
        $(XX) $(CFLAGS) -c file2.cpp -o file2.o 

clean:
        rm -rf *.o helloworld
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36379998/article/details/80316296
个人分类: 大并发服务器
上一篇I/O复用:select函数
下一篇基于对象编程风格
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭