LoginSignup
1
1

C++のライブラリboostの最新版をLinuxサーバーにインストールする方法

Posted at

はじめに

 本記事はC++のライブラリであるboostの最新版をLinuxサーバーに圧縮ファイルからインストールする方法を解説します。最新版が必要でないのであれば、yumやaptによるインストールが最もスマートです。

環境

・2024/02/18
・GitHub Codespace

boostとは

 boostとはタイトルにもある通り、C++のライブラリです。オープンライブラリであり、非商用/商用に無料で利用できます。
 コミュニティとしてのboostは、ライブラリを提供しているだけに留まらず、C++のプログラム言語自体に多大な影響を与えています。boostライブラリはC++の標準機能を試験するための試験場としての役割があります。そのためboostライブラリはC++の標準機能では提供されない先鋭的な技術を提供しており、非常に有用なライブラリとして有名です。
 ChatGPTにそのライブラリの内容を聞けば、以下の通りに回答してくれます。

image.png

 他にも非常に有用な機能を提供しているため、詳しくはWikipediaに記される内容を参照してください。

ダウンロード方法

 boostの公式ページに飛び、URLを取得します

image.png

 Downloadsにあるいずれかの青い文字からURLを取得してください。
 私の場合は以下のURLが取得しました。圧縮ファイルのtar.bz2です。

 Linuxサーバーのターミナルで以下のコマンドを実行して下さい。URLの部分には、取得したURLを代入してください。

wget URL

解凍方法

bz2をダウンロードした場合

 取得したURLの末尾にbz2と書かれている場合、以下のオプションを使用して解凍してください。xxxx部分は、ダウンロードした圧縮ファイルの名前を正確に入力して下さい。

tar -jxvf xxxx.tar.bz2

gzをダウンロードした場合

取得したURLの末尾にgzと書かれている場合、以下のオプションを使用して解凍してください。xxxx部分は、ダウンロードした圧縮ファイルの名前を正確に入力して下さい。

tar -zxvf xxxx.tar.gz

bootstrapの実行

 解凍したboostのディレクトにcdコマンドを使用して入り、以下のコマンドを実行します。

./bootstrap.sh

boostのビルド

 bootstrapの実行後にboostを使用するためにビルドが必要ですので、以下のコマンドを実行します。リカレントディレクトリは解凍されたboostのディレクトリのままです。
  b2はBoost.Buildで管理されたプロジェクトをビルドする実行ファイルです。b2コマンドはprefixを指定することで、ビルドによる生成物の生成ディレクトリを指定できます。prefixのデフォルトは/usr/localが指定されているそうです。

sudo ./b2 install --prefix=/usr/local

 以上のコマンドをそのまま実行した場合、boostライブラリとヘッダーはそれぞれ、/usr/local/libと/usr/local/includeにビルドされる。
 ビルド時間はライブラリの大きさ相応に長くなる。全てのboostライブラリは要らず、特定のライブラリだけを使用したい場合は、bootstrap実行時に –with-libraries のオプションを使用することで解決できます。

example

 boostライブラリを使用した簡単なコード例をコンパイルし、実行することでboostのインストールに問題がないことを確認します。今回はexample.cppというファイルに次のコードを保存しました。

example.cpp
#include <iostream>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>

int main() {
    // UUIDを生成する
    boost::uuids::uuid uuid = boost::uuids::random_generator()();

    // UUIDを文字列に変換して表示する
    std::cout << "Generated UUID: " << uuid << std::endl;

    return 0;
}

 上記のコードを保存したファイルが存在するディレクトリで以下のコンパイルを実行します。/usr/localとは異なるディレクトリにboostをビルドした際は、そのディレクトリを指定してください。

g++ -o example example.cpp -I /usr/local/include/boost -L /usr/local/lib

 無事に実行できればexample実行ファイルが作成されています。実行ファイルを実行すると適当なUUIDが生成され、出力されます。

$ ./example
Generated UUID: c2253419-a003-4431-95cf-fe8db55938ac

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1