📢 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… |
|||
| (同じ利用者による、間の3版が非表示) | |||
| 563行目: | 563行目: | ||
これにより、ビルド時にpkg-configツールが使用されて、指定した外部ライブラリの情報を取得することができる。<br> | これにより、ビルド時にpkg-configツールが使用されて、指定した外部ライブラリの情報を取得することができる。<br> | ||
<br> | <br> | ||
まず、pkg- | <u>まず、pkg-configツールを実行して、ライブラリファイルの存在を確認することが重要である。</u><br> | ||
pkg-config --libs --cflags <ライブラリ名> | pkg-config --libs --cflags <ライブラリ名> | ||
<br> | <br> | ||
==== 推奨される記述 ==== | |||
<syntaxhighlight lang="make"> | |||
# PKGCONFIG変数の設定 | # PKGCONFIG変数の設定 | ||
# | |||
# Pkg-configを使用する | |||
CONFIG += link_pkgconfig | |||
# 単一のライブラリを指定する場合 | |||
PKGCONFIG += <ライブラリ名> | PKGCONFIG += <ライブラリ名> | ||
# 例: Systemdライブラリを使用する場合 | |||
PKGCONFIG += libsystemd | |||
# 複数のライブラリを指定する場合 : | |||
# PKGCONFIG += <ライブラリ名 1> <ライブラリ名 2> <ライブラリ名 3> ... | |||
</syntaxhighlight> | |||
<br> | <br> | ||
変数<code>PKGCONFIG</code>は、pkg-configツールを使用してライブラリの情報を取得するためのものであるため、ライブラリのフルパスを指定することは一般的ではない。<br> | 変数<code>PKGCONFIG</code>は、pkg-configツールを使用してライブラリの情報を取得するためのものであるため、ライブラリのフルパスを指定することは一般的ではない。<br> | ||
| 574行目: | 587行目: | ||
<br> | <br> | ||
もし、ライブラリが一般的の場所にインストールされていない場合や特別な状況でフルパスを指定する場合は、変数<code>LIBS</code>、変数<code>INCLUDEPATH</code>にフルパスを指定する。<br> | もし、ライブラリが一般的の場所にインストールされていない場合や特別な状況でフルパスを指定する場合は、変数<code>LIBS</code>、変数<code>INCLUDEPATH</code>にフルパスを指定する。<br> | ||
<u>ただし、特別な理由がない限り (例えば、非標準のライブラリ配置等)、Pkg-configの情報のみを使用することを推奨する。</u><br> | |||
<br> | |||
==== 非推奨の記述 ==== | |||
また、以下に示すような記述は非推奨である。<br> | |||
<syntaxhighlight lang="make"> | |||
# 非推奨の記述方法 | |||
# Systemdライブラリを使用する場合 | |||
PKGCONFIG += libsystemd | |||
LIBS += -L/usr/lib64 -lsystemd | |||
</syntaxhighlight> | |||
<br> | |||
この記述は冗長であり、潜在的な問題を引き起こす可能性がある。<br> | |||
* 重複したリンク指定 | |||
*: Pkg-configを使用することにより、既に必要なリンク情報を提供しており、ライブラリの場所とリンクするライブラリ名が含まれている。 | |||
*: そのため、変数PKGCONFIGにライブラリ名を指定する必要はない。 | |||
*: <br> | |||
* バージョン不一致のリスク | |||
*: 変数LIBSにおいて、明示的にパスとライブラリを指定する場合、Pkg-configが提供する情報と矛盾する可能性がある。 | |||
*: これにより、異なるバージョンのライブラリがリンクされる、または、互換性の問題が発生する可能性がある。 | |||
*: <br> | |||
* 移植性の低下 | |||
*: ハードコードされたパス (/usr/lib64等) は、異なるシステムや環境では正しくない可能性がある。 | |||
*: Pkg-configを使用するメリットの1つは、システム間の違いを抽象化できることである。 | |||
<br> | |||
==== カスタムディレクトリを指定する場合 ==== | |||
非標準のライブラリ配置、例えば任意のディレクトリにライブラリをインストールしている場合、Pkg-configの設定と直接のライブラリパス指定を組み合わせる必要がある。<br> | |||
<br> | |||
以下の例では、$HOMEディレクトリにインストールされたSystemdライブラリを使用している。<br> | |||
この場合、該当するディレクトリにライブラリのpcファイルが存在するかどうかを確認すること。<br> | |||
<syntaxhighlight lang="make"> | |||
# 環境変数$HOMEの値を取得 | |||
HOME = $$(HOME) | |||
# Pkg-configのパスを設定 | |||
# カスタムのPpkg-config設定を指定して、該当ディレクトリにある.pcファイルを検索するようPkg-configに指示する | |||
QMAKE_PKG_CONFIG = PKG_CONFIG_PATH=$$HOME/lib/pkgconfig pkg-config | |||
# Pkg-configを使用 | |||
# pkg-configを使用してlibsystemdの設定を取得する | |||
CONFIG += link_pkgconfig | |||
PKGCONFIG += libsystemd | |||
# インクルードパスを追加 | |||
# コンパイラにカスタムインクルードディレクトリを追加する | |||
INCLUDEPATH += $$HOME/include | |||
# リンカにカスタムライブラリパスとリンクするライブラリを指定する | |||
LIBS += -L$$HOME/lib -lsystemd | |||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||
| 855行目: | 919行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<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__ | ||
[[カテゴリ:Qt]] | [[カテゴリ:Qt]] | ||