「CMake - リンク」の版間の差分

ナビゲーションに移動 検索に移動
122行目: 122行目:
* generalオプション
* generalオプション
*: 項目の前にgeneralオプションを付加する場合、全てのビルド構成に対して項目を追加するように指定する。
*: 項目の前にgeneralオプションを付加する場合、全てのビルド構成に対して項目を追加するように指定する。
<br><br>
== ライブラリの検索 ==
find_libraryコマンドを使用して、特定の名前のライブラリを検索することができる。<br>
* NAMESオプション
*: ライブラリ名を指定することにより、libプレフィックス無しでライブラリを検索する。
* PATHSオプション
*: 任意
*: ライブラリを検索する場所を指定する。
*: 必要に応じて、パスを調整する。
* NO_DEFAULT_PATHオプション
*: 任意
*: 指定したパスのみを検索する。
<br>
以下の例では、動的ライブラリであるlibsmbclient.soファイルを検索して使用している。<br>
もし、ライブラリの検索に失敗した場合、エラーメッセージを表示してビルドを停止する。<br>
ターゲット (実行可能ファイルまたはライブラリ) を定義する。<br>
target_link_librariesコマンドを使用して、検索で発見したライブラリをターゲットにリンクする。<br>
<syntaxhighlight lang="cmake">
# ライブラリの検索
find_library(SMBCLIENT_LIBRARY
    NAMES sambclient
    PATHS /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib  # PATHオプションは任意
    NO_DEFAULT_PATH                                            # NO_DEFAULT_PATHオプションは任意
)
# ライブラリの検索に成功したかどうかを確認
if(NOT SMBCLIENT_LIBRARY)
    message(FATAL_ERROR "libsmbclient.so library not found")
endif()
# ターゲット (実行可能ファイルまたはライブラリ) を定義
# Qtの場合は、qt_add_executableコマンドを使用する
add_executable(<ターゲット名>
    <ソースファイル 1>
    <ソースファイル 2>
    # ...略
)
# ターゲットにライブラリをリンク
target_link_libraries(<ターゲット名>
    ${SMBCLIENT_LIBRARY}
    # ...略
)
</syntaxhighlight>
<br><br>
<br><br>


案内メニュー