LoginSignup
1
2

More than 5 years have passed since last update.

Visual Studio 2017 で Linux C++ 開発 (Boost C++ Libraryを使う)

Posted at

準備

Boost C++ Library を利用するためインストールする必要がありますが、Linux 側だけでなく Windows 側にもインストールします。

ただし、Windows 側の Boost はビルドに使う訳ではなく、チェックに使われるだけなので、仮になくてもビルドはできてしまいます。

Ubuntu の場合はつぎのコマンドでインストールできます。(最新版が必要な場合は、Windows の場合と同じ場所からダウンロードして、独自にインストールします)

sudo apt install -y libboost-dev

Windows 側は次のサイトから Unix 用をダウンロードして、展開した後、適切なフォルダにコピーしておきます。

 http://www.boost.org/users/download/

プロジェクトの作成

プロジェクトの作成ですが、下記の投稿を参考にしてください。

 Visual Studio 2017 の Linux C++ 開発機能

Windows 側では Boost の場所をプロジェクトに教えてやる必要があります。プロジェクトのプロパティで Boost を保存したディレクトリをインクルードディレクトリに追加します。(参考 Fig.1)

BoostIncludePath.png

Fig.1 インクルードパスの追加

サンプルプログラム

次のサンプルプログラムは、Boost の機能を利用して、文字列を指定した区切り文字で分割し、再び結合するものです。

List1. サンプルプログラム

#include <cstdio>
#include <iostream>
#include <string>
#include <vector>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/join.hpp>
#include <boost/foreach.hpp>
#include <boost/algorithm/string/classification.hpp>

using namespace std;
using namespace boost;

//
//  Boost: 文字列の分割と結合のテスト
//  =================================
int main()
{
    const wchar_t* str0 = L"This is a pen.";
    vector<wstring> result;

    result = algorithm::split(result, str0, is_any_of(L" "));

    BOOST_FOREACH(wstring s, result)
    {
        wcout << s << endl;
    }

    wstring joined = algorithm::join(result, L",");

    wcout << joined << endl;

    // getchar();
    return 0;
}

プロジェクトを実行すると、最初の回だけ Linux への接続のためのダイアログが開きます。接続情報を入力するとビルドが行われ、エラーがなければプログラムが Linux 側で実行されます。もし、ブレークポイントを設定しておけば、そこで停止します。

Linux Console は「デバッグ」メニューの中にあるので、メニューをクリックして開きます。

BoostLinuxConsole.png
Fig.2 Linux Console

-

1
2
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
2