Linux配置C++11编译环境的方法

  • Post category:Linux

为Linux配置C++11编译环境的方法主要包括以下几个步骤:

  1. 确认当前Linux系统支持C++11语法。打开终端窗口,执行以下命令:

bash
$ gcc --version

如果返回的信息中包含”GCC 4.7″及以上版本号,那么该系统内置支持C++11语法。否则需要升级GCC编译器版本。在大多数Linux系统中,可以通过以下命令升级GCC编译器版本:

bash
$ sudo apt-get update
$ sudo apt-get install build-essential
$ sudo apt-get install gcc-4.7 g++-4.7

  1. 创建支持C++11语法的项目。在终端窗口中,执行以下命令:

bash
$ mkdir my_cpp11_project
$ cd my_cpp11_project
$ touch main.cpp

这里以创建名为”my_cpp11_project”的项目为例,并在项目中新建名为”main.cpp”的文件。

  1. 配置编译参数。在终端窗口中,执行以下命令:

bash
$ g++ -std=c++11 -o my_cpp11_program main.cpp

这条命令中的”-std=c++11″参数表示使用C++11语法进行编译,”-o”参数表示指定输出文件名,”my_cpp11_program”为输出文件的文件名,”main.cpp”为源代码文件名。

  1. 运行程序。在终端窗口中,执行以下命令:

bash
$ ./my_cpp11_program

如果一切顺利,应该可以在终端窗口中看到程序的输出结果。

示例1:使用Lambda表达式

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int n = 10;
    vector<int> v(n);

    for (int i = 0; i < n; i++) {
        v[i] = rand() % 100;
    }

    auto print = [](int x) { cout << x << " "; };
    for_each(v.begin(), v.end(), print);
    cout << endl;

    return 0;
}

在终端窗口中,执行以下命令进行编译和运行:

$ g++ -std=c++11 -o lambda_test lambda_test.cpp
$ ./lambda_test

输出结果应该为:

47 90 32 1 67 37 22 45 63 2

示例2:使用智能指针

#include <iostream>
#include <memory>

using namespace std;

class Test {
public:
    Test() { cout << "Test constructor" << endl; }
    ~Test() { cout << "Test destructor" << endl; }
};

int main()
{
    shared_ptr<Test> ptr(new Test());
    return 0;
}

在终端窗口中,执行以下命令进行编译和运行:

$ g++ -std=c++11 -o shared_ptr_test shared_ptr_test.cpp
$ ./shared_ptr_test

输出结果应该为:

Test constructor
Test destructor