zoukankan      html  css  js  c++  java
  • linux下用vim编写C/C++工程(多个源文件)的基本方法

    在我们平时写程序的过程中,用单个源文件把程序写出来的时候较少,一般都是分成多个头文件和源文件来完成的。这个时候如果我们仍想就通过vim工具来完成 我们的编译工作,那就要用到make。这里用个最简单的例子最简单地介绍写一个最简单的makefile的方法,在我们写一些很小的程序的时候可以就这 样。

    这里就以两个文件的程序为例,把规则看明白后多的文件类推就可以了。
    我们先用vim写好要写好的hello.h和hello.cpp:

    //hello.h
    #include<iostream>
    using namespace std;

    int ABC(int m,int n)
    {
    int i=m+n;
    cout<<i<<endl;
    }

    //hello.cpp
    #include<iostream>
    #include "hello.h"

    using namespace std;

    int main()
    {
    int a,b;
    cin>>a>>b;
    ABC(a,b);
    }

    然后写一个文件命名为Makefile或makefile,内容如下:

    a:hello.o
    g++ -o a hello.o
    hello.o:hello.cpp hello.h
    g++ -c hello.cpp

    .PHONY:clean
    clean:
    rm a hello.o

    其意思如下:
    a:hello.o // 我们的目标文件是a,但a的生成依赖于hello.o
    g++ -o a hello.o // 从hello.o生成a所要进行的动作
    hello.o:hello.cpp hello.h // hello.o依赖于hello.cpp和hello.h
    g++ -c hello.cpp // 生成hello.o所要进行的动作

    .PHONY:clean // 伪目标clean
    clean:
    rm a hello.o // clean的动作



    也就是说,我们的关键是要把目标文件、中间文件与源文件之间的依赖关系和要进行的动作写清楚。
    把这几个文件在某目录下保存好以后,在这个目录下打开终端,
    执行make
    可以看到编译的步骤,
    然后ls
    如果没错误的话就可以看到目录下多了个a文件,
    ./a
    输入两个整数,就会看到输出他们的和。
    运行make clean可以清除a和hello.o


    这只是最简单的例子,make是很强大很好用的工具,我们大家都相当有必要把它学好,详细的学习资料请见http://www.chinaunix.net/jh/23/408225.html。
  • 相关阅读:
    处理接口返回script标签对
    跨域问题总结
    CordMirror 在线代码编辑器
    解决IOS移动端 new Date 为 Invalid Date bug
    大屏数据可视化
    Xcode清理缓存
    ArrayMap和HashMap区别
    javacript总结
    css总结
    html总结
  • 原文地址:https://www.cnblogs.com/mazhuang/p/1645807.html
Copyright © 2011-2022 走看看