「Qtの設定 - qmake」の版間の差分

ナビゲーションに移動 検索に移動
563行目: 563行目:
これにより、ビルド時にpkg-configツールが使用されて、指定した外部ライブラリの情報を取得することができる。<br>
これにより、ビルド時にpkg-configツールが使用されて、指定した外部ライブラリの情報を取得することができる。<br>
<br>
<br>
まず、pkg-configツールを実行して、ライブラリファイルの存在を確認する。<br>
<u>まず、pkg-configツールを実行して、ライブラリファイルの存在を確認することが重要である。</u><br>
  pkg-config --libs --cflags <ライブラリ名>
  pkg-config --libs --cflags <ライブラリ名>
<br>
<br>
==== 推奨される記述 ====
<syntaxhighlight lang="make">
  # PKGCONFIG変数の設定
  # PKGCONFIG変数の設定
  # 複数のライブラリを設定する場合 : PKGCONFIG += <ライブラリ名 1> <ライブラリ名 2> <ライブラリ名 3> ...
  # 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>
<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><br>
<br><br>


案内メニュー