美文网首页
用命令行构建 C++

用命令行构建 C++

作者: mnikn | 来源:发表于2017-06-15 22:24 被阅读146次

    一开始初学 C++ 的时候免不了用 IDE,但是有时候我只是想用控制台做一点小测试,不需要用特地用 IDE 来构建一个项目,如果能够一句命令行就能运行就好了。本文将会讲述如何从零开始用命令行构建 C++,以下操作均在 mac/linux 环境下运行,

    准备工作

    要构建 C++ 的话,需要编译器和构建工具,编译器我们使用 g++,而构建工具则使用 make。如果没有这两样工具的话我们需要打开命令行,运行下面命令。

    # for mac
    brew install g++
    brew install make
    
    # for linux
    sudo apt-get g++
    sudo apt-get make
    

    命令行 Hello world!

    我们先开始创建我们的第一个 c++ 文件。

    mkdir hello-project 
    cd hello-project
    touch main.cpp
    

    然后通过编辑器输入以下内容。

    #include <iostream>
    using namespace std;
    
    int main()
    {
        cout << "Hello World!" << endl;
        return 0;
    }
    

    然后创建构建规则文件 makefile,这个文件将告诉系统如何构建程序,具体的 make 教程可查看 Make 命令教程 ,和我之前写的一篇文章 Makefile的使用

    touch makefile
    

    修改 makefile 文件内容,对于 g++ 的构建可参考 gcc编译过程,其构建命令和 gcc 基本一样。

    ## 通过 g++ 构建文件 main.cpp,生成文件默认为 a.out
    ## 带冒号那一行是下面命令的代称,为了避免有文件与之重名,所以加上 .PHONY
    .PHONY: program
    program: 
        g++ main.cpp
    
    .PHONY: clean
    clean:
        rm *.o *.out
    

    最后我们通过命令行根据 makefile 构建,并运行。

    # make 会默认寻找当前目录下名叫 makefile 的文件,并按照规则构建
    make source
    
    # 运行!
    ./a.out
    

    用命令行构建类!

    上面只有一个文件,但是我们大多数情况需要构建多个文件,我们以构建一个 Person 类为例,在 main.cpp 里面 使用 Person 类。

    首先我们创建 Person.h。

    #ifndef PERSON_H
    #define PERSON_H
    
    #include <string>
    using std::string;
    
    class Person{
        private:
            string _name;
    
        public:
            string getName();
            void setName(string name);
    }
    
    #endif
    

    然后创建 person.cpp。

    #include "Person.h"
    
    string Person::getName(){
        return this->_name;
    }
    
    void Person::setName(string name){
        this->_name = name;
    }
    

    在 main.cpp 中使用 person。

    #include <iostream>
    #include "Person.h"
    using namespace std;
    
    int main()
    {
        Person person;
        person.setName("Gay");
        cout << person.getName() << endl;
        return 0;
    }
    

    修改 makefile。

    .PHONY: program
    program: main.o person.o
        g++ main.o person.o -o program
    
    main.o: main.cpp person.h
        g++ -c main.cpp -o main.o
    
    person.o: person.cpp person.h
        g++ -c person.cpp -o person.o
    
    .PHONY: clean
    clean:
        rm *.o program
    

    最后运行,搞定!

    make
    
    ./program
    

    相关文章

      网友评论

          本文标题:用命令行构建 C++

          本文链接:https://www.haomeiwen.com/subject/crauqxtx.html