难以弄清如何编译和链接仅包含一些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
)。因此,我创建了此问答。
这里是编译程序的必要步骤
安装boost
和boost-devel
sudo yum install boost#安装用于链接的库sudo yum install boost-devel#安装要包含的头文件以供编译]]
您要让Eclipse产生的命令如下:
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
等文件的来源。
要让Eclipse产生该命令
+
图标并添加boost_system
库。抬起头,我选择了“跨gcc编译”选项,而不是Linux交叉编译选项。这实际上来自Nvidia的Eclipse版本(随CUDA一起发行的“ Eclipse Nsight”),因此非Nvidia的Eclipse的说明可能有所不同。