2

QtとOpenGLを使用してアプリケーションを開発していますが、GLMライブラリをダウンロードする必要があることがわかりました。ヘッダーのみのライブラリなので、何にもリンクする必要はありません。このアプリケーションを、正しいライブラリがインストールされているすべてのシステムで構築したいと思います。私の問題は、プロジェクトの.proファイルに特定のパスを追加せずにシステムがGLMを見つけられるように、GLMを配置する場所がわからないことです。.proファイルは私のgitリポジトリの一部であり、ソースがLinuxなどの他のシステムに配布される方法です。したがって、他のシステムが他の場所にある可能性があるため、このファイルでGLMの正確な場所を指定したくありません。 。

私は現在Windowsで開発しており、Visual C ++2010を使用してQtCreatorでコンパイルしています。INCLUDE環境変数を使用して検索するMSDN#include <file>から読んだので、glm.hppへのパスをINCLUDEに追加しようとしましたが、このプロジェクトのQtCreatorのビルド環境INCLUDEを上書きしているようです。そのため、QtCreatorの[プロジェクト]タブ内からGLMへのパスを新しいINCLUDEに追加しましたが、コードでglm.hppが見つかりません。

一般に、他のシステムに配布されるプロジェクトファイル内の正確な場所を指定しなくても、コンパイラが外部ライブラリを見つけられるように、システムに外部ライブラリを追加するにはどうすればよいですか?

4

1 に答える 1

2

必要なのは、要求したライブラリをシステムで検索し、任意のプラットフォームで検索できるビルドシステムです。そのようなビルドシステムの1つがcmakeであり、これは最も広く使用されているビルドシステムです。本質的に、cmakeを使用すると、コンパイルするターゲット(ライブラリ、実行可能ファイル、など)、ヘッダーへの相対パス、リンクやインクルードパスに含めるライブラリなど、さまざまなものがあります。システムにインストールされているライブラリには、次のような関数があります。find_package()(cmakeスクリプトコマンドの一部)、ライブラリがインストールされているかどうか、およびそのlibファイルとヘッダーの場所を確認します(これらのパスを、ターゲットなどで指定できるキャッシュ文字列として保存します)。ライブラリが奇妙な場所にインストールされていない限り、通常はうまく機能します。それが機能する方法は、cmakeを実行すると、指定したほぼすべてのプラットフォームのビルドスクリプト/構成を生成し、それを使用してコードをコンパイルすることです。makefile(UnixライクまたはWindows)、CodeBlocksプロジェクトファイル、Visual Studioプロジェクトファイルなどを生成できます。また、多くのIDEはcmakeプロジェクトをネイティブでサポートしています。

cmakeに偏りが少ないように聞こえるように、別の方法をお勧めしたいのですが、特に外部の依存関係を特定してさまざまなプラットフォームで作業する目的で、これに真に匹敵するものは聞いたことがありません。Boost.Buildもまともだと思います。

于 2013-01-31T03:44:42.000 に答える