C_INCLUDE_PATH のバックアップ(No.1) - アールメカブ

アールメカブ


C_INCLUDE_PATH のバックアップ(No.1)


Programming

ここから引用する.

2.1 インクルードパスの設定

C/C++でhファイルを#include によってインクルードする際の、インクルードのカレント・ディレクトリを設定しましょう。この設定を行うことで、以降、すべての開発において再設定を行う必要がなくなります。

今回は、Linuxに用意されている環境変数にインクルードパスを追加します。

まず、ターミナルを起動し、

 $cd $HOME

を実行します。その後、

 $ls -a | grep .bash

を実行しましょう。結果に.bash_profile、.bashrcがありますか?

これらのファイルは、前者がログイン時、後者がアプリケーションの起動時に実行されるスクリプトです。これらのファイルにインクルードパスに関する環境変数を設定し、スクリプトを実行させることで、インクルードパスを追加します。

今回は、.bash_profileに記述しましょう。

 $vi .bash_profile

を実行して、.bash_profileを修正しましょう。

適当な行に(最後の行が良いでしょうか)、

 C_INCLUDE_PATH="インクルードパスとして追加したい絶対パス“:$C_INCLUDE_PATH
 export C_INCLUDE_PATH

を追加してください。

”インクルードパスとして追加したい絶対パス“が、複数ある場合は、”:"で区切ります。

パスが分からない場合はpkg-configなどを利用して調べるのが良いでしょう。

例としてGTK+-2.0のパスを調べる方法を紹介します。

 $pkg-config gtk+-2.0 --cflags

のようにすると、

 -I/usr/include/gtk-2.0 -I/usr/local/include... ...

のように返ってくるはずです。各文字列の-Iを取り除いた残りの部分がインクルードパスに当たります。

もしもpkg-configでエラーが返ってきたら、/usr/lib/pkgconfig/内で.pcファイルを調べてみてください。pkg-configはこのファイルを開いて各文字列を表示します。pkg-config gtk+-2.0 --cflagsを指定した場合、gtk+-2.0.pcを参照しようとします。これが無い場合は、自力で必要なパスを捜し出すしかありません。

以上で、Cを利用する場合のインクルードパスの設定は終了しました。再ログイン後有効になっているはずです。

C++で設定する場合は、C_INCLUDE_PATHをCPLUS_INCLUDE_PATHにしたものを新たに追加してください。

2.2 ライブラリの設定

ライブラリの設定ですが、Eclipseでは完全な全自動化は無理なようです。むしろ、Eclipseだけに留まらず、他のどんなアプリケーションでも無理な気がしますが...。

ただし、プロジェクトごとに自動化することなら出来ます。これはMakefileを各手間を省くだけのことですが、ここではその方法を紹介します。

※C/C++プロジェクトは、「Managed Make C/C++ Project」で生成してください。

Eclipseを起動します。プロジェクトを新規作成するか、または、すでに在るプロジェクトを開いてください。Project View に表示されているプロジェクトを選択して、メニューバー上の「Project」あるいは日本語化をしているなら「プロジェクト」を選択し、「Proparties」あるいは「プロパティ」を選択してください。出てきたダイアログの中から「C/C++Build」を選択します。「C/C++ Linker」を選ぶか、「C/C++ Libraries」を選んでください。「C/C++ Linker」を選んだ場合は、command:欄に`pkg-config ...`という風にして通常gccでビルドするときのようにライブラリを指定します。「C/C++ Libraries」を選んだ場合は、「+」アイコンからライブラリを追加していきます。この時のライブラリの指定は-lオプションを除いた雷ぶらり名だけにしてください。その後、Applyボタンを押して適用させます。

以上で、ライブラリの設定はおしまいです。

この手法では、プロジェクトを新規に生成するたびに設定し直さなければなりませんが、いちいちMakefileを作る必要がないので、まだ楽チンです