如何在Oracle Linux上的Eclipse中编译和链接Boost库

问题描述 投票:0回答:1

难以弄清如何编译和链接仅包含一些boost库的简单boost程序。

代码如下

#include <iostream>
#include <boost/array.hpp>
#include <boost/asio.hpp>
using namespace std;

int main() {
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
    return 0;
}

主持人的注意:关于SO的很多帖子都在问类似的问题。但是,我没有找到一个可以完全解决我问题的方法(我缺少的主要见识是我需要安装boost-devel)。因此,我创建了此问答。

c++ boost linker g++
1个回答
0
投票

这里是编译程序的必要步骤

  1. 安装boostboost-devel

    sudo yum install boost#安装用于链接的库sudo yum install boost-devel#安装要包含的头文件以供编译]]

  2. 您要让Eclipse产生的命令如下:

  3. g ++ net-server.cpp -I / usr / include -L / usr / lib64 / -lboost_system

    -L/usr/lib64实际上是不必要的,但我为读者包括了它,因为它使读者可以更轻松地理解-l包含与默认情况下包含在Oracle Linux中的-L/usr/lib64之间的关系。 )。

-I /usr/include也是不必要的,但其中包含的内容是为了使读者清楚地知道编译阶段boost/array.hpp等文件的来源。

  1. 要让Eclipse产生该命令

    • 转到项目>属性
    • 选择您要配置的构建(您可能要对“ Debug”和“ Release”构建都进行此配置,但也许只有一个)]
    • 转到“跨G ++链接器”>库。
    • 在“库”部分中,单击+图标并添加boost_system库。
  2. 抬起头,我选择了“跨gcc编译”选项,而不是Linux交叉编译选项。这实际上来自Nvidia的Eclipse版本(随CUDA一起发行的“ Eclipse Nsight”),因此非Nvidia的Eclipse的说明可能有所不同。

© www.soinside.com 2019 - 2024. All rights reserved.