C++ 编译C++;使用boost所有linux发行版

C++ 编译C++;使用boost所有linux发行版,c++,linux,boost,distribution,C++,Linux,Boost,Distribution,使用boost编译所有发行版的最佳方法是什么?我读过很多文章,但真的不知道怎么做。我使用代码块,我的程序在系统上工作,我在上面建立,但不是在其他DeRoOS上,我只得到一个分割错误(内核转储)我是一个初学者用Linux C++。下面是我正在使用的附件。我需要制作一个makefile吗?我不知道如何在每个发行版上制作和安装。基本上,这是发布程序并将其隐藏起来的最佳方式。提前谢谢 #include <cstdlib> #include <iostream> #include

使用boost编译所有发行版的最佳方法是什么?我读过很多文章,但真的不知道怎么做。我使用代码块,我的程序在系统上工作,我在上面建立,但不是在其他DeRoOS上,我只得到一个分割错误(内核转储)我是一个初学者用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 with LD_LIBRARY_PATH


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

什么平台?在Linux中,最好直接在平台上构建代码,因为混合了
libstdc++等库。因此
。您可以静态链接已编译的boost库(反正没有那么多)。我最近做得很成功。您甚至可以静态地添加
libstdc++
-static libstdc++
),然后您的代码只依赖于运行时C库,它在Linux发行版中比其他两个更稳定。im使用带有代码块的ubuntu 11,我只是做了一个基本的程序,能够将exec移到其他服务器上,它起作用了。我想我只需要把我的程序拆开,找出导致分割错误的原因,核心转储错误,可能是我的新手did@user1054513C++的一个大问题就是链接。一个动态链接的C++程序将主要用于编译它的环境。(@user1054513:用
g++-g-Wall
..编译程序,在
gdb
下运行到segfault,然后向我们显示
bt
(回溯)输出。