编译c++与boost所有linux发行版

Compiling C++ with boost all linux distributions

本文关键字:linux 所有 c++ boost 编译      更新时间:2023-10-16

用boost编译所有发行版的最佳方法是什么?我读了很多文章,但还是不知道该怎么做。我正在使用代码块,我的程序在我构建它的系统上工作,但不是在其他发行版上,我只是得到一个分段错误(核心转储)我是Linux c++的初学者。下面是我正在使用的包括。我需要做一个makefile吗?我不知道如何在每个发行版上制作和安装。基本上是最好的方式来分发程序,但仍然隐藏它。提前感谢

#include <cstdlib>
#include <iostream>
#include <ostream>
#include <fstream>
#include <string>
#include <vector>
#include <sstream>
#include <boost/regex/v4/regex.hpp>
#include <boost/algorithm/string/trim.hpp>
#include <boost/algorithm/string.hpp>
#include <iterator>
#include <map>
#include <stdexcept>
#include <boost/lexical_cast.hpp>

基本上,有两种方法可以做到这一点。静态的和动态的。您可以静态地链接所有内容,这样就不会有问题了,只是有点浪费资源。或者您可以动态链接到特定的libboost-regex.so.41.2.2或任何当前版本。在后一种情况下,您可能希望包含正在使用的版本,并在ldd前面加上LD_LIBRARY_PATH。

我知道这有点高水平。更具体地说,我需要更多的细节。你的程序(你运行的东西)说什么?问题很可能是,在版本控制方案中,boost与通常的只在第一个版本号上破坏abi的方案略有不同。如果您有某种构建文件(我不知道代码块),那也很好看到。