13,007
回編集
167行目: | 167行目: | ||
*: Windowsでは、DLL向けのインポートライブラリは作成されない。 | *: Windowsでは、DLL向けのインポートライブラリは作成されない。 | ||
<br> | <br> | ||
よほどのことがない限り、<code>STATIC</code>または<code>SHARED</code> | よほどのことがない限り、<code>STATIC</code>または<code>SHARED</code>オプションは、それが必要であることが分かるまで付加しないことを推奨する。<br> | ||
これにより、プロジェクト全体を通して、スタティックライブラリかダイナミックライブラリかをより柔軟に選択することができる。<br> | これにより、プロジェクト全体を通して、スタティックライブラリかダイナミックライブラリかをより柔軟に選択することができる。<br> | ||
<br> | |||
ビルドするライブラリの種類を定義するオプションを省略することも可能である。<br> | |||
特定のライブラリが必要でない限り、プロジェクトファイルには指定せずに、プロジェクトの構築時に開発者が選択できるようにすることが望ましい。<br> | |||
そのような場合、ライブラリは<code>STATIC</code>か<code>SHARED</code>のどちらかになり、変数<code>BUILD_SHARED_LIBS</code>の値により選択される。<br> | |||
<br> | |||
変数<code>BUILD_SHARED_LIBS</code>が<code>true</code>に設定されている場合、ライブラリのターゲットはダイナミックライブラリになる。<br> | |||
そうでない場合は、スタティックライブラリになる。<br> | |||
これは、<code>add_library</code>コマンドを呼び出すたびに変更する必要がなく、一箇所でデフォルトを変更することができる。<br> | |||
ただし、<code>add_library</code>コマンドを呼び出す前に、変数<code>BUILD_SHARED_LIBS</code>を記述する必要がある。<br> | |||
<syntaxhighlight lang="cmake"> | |||
set(BUILD_SHARED_LIBS YES) | |||
</syntaxhighlight> | |||
<br> | |||
変数<code>BUILD_SHARED_LIBS</code>を設定する方法として、<code>cmake</code>コマンドに<code>-DBUILD_SHARED_LIBS</code>オプションを付加する方法がある。<br> | |||
cmake -DBUILD_SHARED_LIBS=YES /path/to/source | |||
<br><br> | <br><br> | ||