このページについて

サードパーティ製ライブラリの使用

qmake を使用すると、Qt でサードパーティ製ライブラリを利用できます。例えば、猫の鳴き声の音声サンプルを受け取り、それを英語の単語に変換するクロスプラットフォームのライブラリがあるとします。このライブラリはCatWhisperer という名前で、ライブラリの一部として提供されるファイルがいくつかあります。プロジェクトMyQtApp では、これらのファイルを3rdparty というフォルダに保存しています:

  • MyQtApp/
    • MyQtApp.pro
    • src/
      • main.cpp
    • 3rdparty/
      • CatWhisperer
        • include/
          • CatWhisperer.h
        • lib/
          • libCatWhisperer.so
          • CatWhisperer.lib
        • bin/
          • CatWhisperer.dll

MyQtApp でCatWhisperer ライブラリを使用するには、qmake がCatWhisperer ライブラリの場所と名前を必要とします。また、必要に応じて以下を行うこともできます:

  • CatWhisperer のソースコードの場所を指定することで、自身のコードにインクルードする際に各ファイルのフルパスを手動で入力する必要がなくなります。
  • MyQtApp の実行ファイルが作成される保存先を選択します。

上記の情報は、.pro ファイル内に記述されます。これにより、qmake がこれを解析し、makefileを生成できるようになります。makefileには、実行ファイルや別のライブラリファイルなど、出力を生成するためにコンパイラやリンカが必要とするすべての情報が含まれています。次のセクションでは、qmake がこの情報を指定するために期待する構文について説明します。

ソースコード

次のように記述できるようにするには

#include <CatWhisperer.h>

の代わりに

#include <3rdparty/CatWhisperer/include/CatWhisperer.h>

と記述できるようにするには、INCLUDEPATH変数を使用して、CatWhisperer のinclude ディレクトリへのパスを指定できます:

INCLUDEPATH += 3rdparty/CatWhisperer/include

ライブラリファイル

qmake にCatWhisperer ライブラリファイルの場所を指定するには、LIBS変数を使用します:

LIBS += -L"3rdparty/CatWhisperer/lib" -lCatWhisperer

式の前半部分は、リンカーにライブラリファイルを検索すべきディレクトリを指定します。二重引用符はパスにスペースが含まれている場合にのみ必要となるため、この例では省略することも可能でした。

2番目の部分は、リンカーにどのライブラリをリンク対象とするかを指定します。UNIXプラットフォーム用とWindows用で、それぞれ異なるライブラリファイルが用意されています:libCatWhisperer.so とCatWhisperer.lib です。.lib という拡張子や、lib というプレフィックス(UNIXプラットフォームの場合)を指定する必要はありません。

出力ディレクトリ

デフォルトでは、qmake は.pro ファイルと同じディレクトリに実行ファイルを作成します。DESTDIR変数を使用することで、独自のディレクトリを指定することができます:

DESTDIR = bin

以上です!これで、プロジェクトでCatWhisperer ライブラリを使用できるようになりました。最終的な.pro ファイルは次のようになります:

TARGET = MyQtApp

TEMPLATE = app

INCLUDEPATH += 3rdparty/CatWhisperer/include

SOURCES += src/main.cpp

LIBS += -L"3rdparty/CatWhisperer/lib" -lCatWhisperer

関連項目 :Qt Creator :qmakeプロジェクトへのライブラリの追加。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.