Help us understand the problem. What is going on with this article?

Google OR-ToolsをVisualStudio2019でビルドしてみる

Google OR-ToolsをVisualStudio2019でビルドしてみる

Google OR-Tools を利用してみたかったのでVisualStudio2019でビルドしてみたのでメモをまとめておきます。

事前準備

stableコードの取得とサンプルプログラムの実行

基本的には、or-toolsのgithubの資料にある通りだが、私の環境だけなのか、上手くビルドできなかった所がありました。
1. コードの取得
デフォルトブランチがstableなので、そのままgit clone。
git clone https://github.com/google/or-tools.git

2. cmakeコマンドでコード生成する
cd or-tools
mkdir build
cmake -G "Visual Studio 16 2019" -DBUILD_DEPS=ON ..

実はこれだけだとProtobufライブラリのテストコードのビルド付近でコケます。そのため、今回はビルドがコケる理由は一旦置いておいて、SKIPさせるために以下を行いました。
3. ProtobufライブラリのBUILD_TESTをOFFに
 image.png
再度、上記cmakeコマンドを実行します。今度は、この-Dprotobuf_BUILD_TESTS=OFF がcmakeに渡されて該当のコケる処理をSKIPしてくれるため、めでたくortools.slnが同buildディレクトリに生成されます。
4. ortools.slnをVisualStudio2019で開き、ソリューションをビルド
5. Debug実行してみる
サンプルコードも一緒にビルドされるためrandom_tsp.exeをDebugモードで起動してステップ実行してみます。
デフォルトではALL_BUILDプロジェクトがスタートアッププロジェクトに設定されているので、random_tspに変更する必要があります。
random_tspのプロジェクトをソリューションエクスプローラー内で右クリックして「スタートアッププロジェクトに設定」を選択します。その後は、Debugger実行をメニューで選べば以下の様にVisualStudio2019のステップ実行が確認できます。

おわりに

Google OR-Toolsで最適化問題を解きたいと考えている人も多いと思います。Apache License 2.0で提供されています。Windowsアプリ開発者も積極的に利用できると良いですね。:smiley:
ローカル環境でVisualStudio2019上でビルドできたので、高機能なIDEの機能を活用してコード理解を深めることにつながればと思います。それにしてもProtobufがテストコードのビルドでコケるのは私の環境のせいなのか?時間があるときに原因を追究してみよう。

参照元

次回

今回ソースコードからビルドしたortools.libを利用してC++サンプルプログラムを別プロジェクトとして作成してみましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away