Introduction
前回の記事で、boostを使った簡単なクロスプラットフォームアプリを作りました。
で、それを会社でテンプレートにして手を加え、Windowsで動かしたらまったく動きませんでした。
というかビルドが通らない。
理由はlibが見つからないこと。
前回のサンプルは、libを使わず、ヘッダーだけで動作したプログラムだった模様。
なので、ちょっと修正します。
ソースは下記になります。
Explanation
まずは、CMakeLists.txt
1 | cmake_minimum_required(VERSION 3.9.0) |
今回の肝は、target_link_librariesの行。
コンパイラがVisual Studioなのかそうでないのかで、リンクするライブラリを変えています。
次に、main.cpp
1 |
|
引数で渡されたファイルが存在するかどうかを表示するだけです。
Build&Run
ビルドします。
CMakeLists.txtとmain.cpが同じ階層にあるものとし、カレントディレクトリがCMakeLists.txtと同じだとします。
また、CMakeのパスは通っているものとします。
Windows
1 | $ mkdir build |
Linux
1 | mkdir build |
Conclusion
今度はきちんと静的リンクできています。
Source Code
https://github.com/takuya-takeuchi/Demo/tree/master/CMake/02_CMake2