📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
細 文字列「__FORCETOC__」を「{{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This pag… |
|||
| (同じ利用者による、間の1版が非表示) | |||
| 165行目: | 165行目: | ||
${SMBCLIENT_LIBRARY} | ${SMBCLIENT_LIBRARY} | ||
# ...略 | # ...略 | ||
) | |||
</syntaxhighlight> | |||
<br><br> | |||
== ライブラリパスの指定 (target_link_directoriesコマンド) == | |||
<code>target_link_directories</code>コマンドは、特定のターゲット (実行可能ファイルやライブラリ) に対して、リンカが追加のライブラリを検索する場所を指定する。<br> | |||
<br> | |||
target_link_directoriesコマンドの特徴を以下に示す。<br> | |||
* スコープの明確化 | |||
*: <code>target_link_directories</code>コマンドは、特定のターゲットに対してのみリンクディレクトリを設定するため、影響範囲が明確である。 | |||
* より細かい制御 | |||
*: ターゲット単位で設定できるため、プロジェクト全体ではなく必要なターゲットにのみ適用できる。 | |||
* ジェネレータ式の対応 | |||
*: <code>target_link_directories</code>コマンドはジェネレータ式をサポートしており、より柔軟な設定が可能である。 | |||
*: ${CMAKE_CURRENT_SOURCE_DIR}のようなCMake変数や、$<...>のようなジェネレータ式が使用できる。 | |||
* 順序 | |||
*: 複数のディレクトリを指定する場合、最初に指定したディレクトリから検索する。 | |||
<br> | |||
基本的な構文を以下に示す。<br> | |||
<syntaxhighlight lang="cmake"> | |||
target_link_directories(<ターゲット名> | |||
<INTERFACE|PUBLIC|PRIVATE> [items1...] # INTERFACE, PUBLIC, PRIVATE: リンクディレクトリの適用スコープ | |||
[<INTERFACE|PUBLIC|PRIVATE> [items2...] ...] # INTERFACE, PUBLIC, PRIVATE: リンクディレクトリの適用スコープ | |||
) | |||
</syntaxhighlight> | |||
<br> | |||
スコープの意味を以下に示す。<br> | |||
* PRIVATE | |||
*: 指定したディレクトリは、このターゲットのみに適用される。 | |||
*: このターゲットに依存する他のターゲットには伝播しない。 | |||
*: <br> | |||
* INTERFACE | |||
*: このターゲットには適用されず、このターゲットに依存する他のターゲットに伝播する。 | |||
*: 主にインターフェースライブラリで使用する。 | |||
*: <br> | |||
* PUBLIC | |||
*: PRIVATEとINTERFACEの組み合わせである。 | |||
*: このターゲットとそれに依存する他のターゲットの両方に適用される。 | |||
<br> | |||
以下の例では、ターゲット1 (mylib) は、/path/to/private/libsおよび/path/to/public/libsからライブラリを検索する。<br> | |||
ターゲット2 (myapp) は、/path/to/public/libsおよび/path/to/interface/libsからライブラリを検索する。 (mylibに依存しているため)<br> | |||
<syntaxhighlight lang="cmake"> | |||
add_library(mylib STATIC | |||
source1.cpp | |||
source2.cpp | |||
) | |||
target_link_directories(mylib | |||
PRIVATE /path/to/private/libs | |||
PUBLIC /path/to/public/libs | |||
INTERFACE /path/to/interface/libs | |||
) | |||
add_executable(myapp | |||
main.cpp | |||
) | |||
target_link_libraries(myapp PRIVATE | |||
mylib | |||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| 170行目: | 229行目: | ||
== ライブラリパスの指定 (link_directoriesコマンド) == | == ライブラリパスの指定 (link_directoriesコマンド) == | ||
<u><code>link_directories</code>コマンドの使用は非推奨である。</u><br> | |||
<u>代わりに、<code>target_link_directories</code>コマンドを使用することが推奨されている。</u><br> | |||
<br> | |||
ライブラリパスを指定する場合、<code>link_directories</code>コマンドを使用する。<br> | ライブラリパスを指定する場合、<code>link_directories</code>コマンドを使用する。<br> | ||
<syntaxhighlight lang="cmake"> | <syntaxhighlight lang="cmake"> | ||
| 191行目: | 253行目: | ||
<br><br> | <br><br> | ||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:Qt]] | [[カテゴリ:C]][[カテゴリ:C++]][[カテゴリ:Qt]] | ||