インクルードディレクトリの指定 – プログラミング – Home

インクルードディレクトリの指定
 
通知
すべてクリア

インクルードディレクトリの指定


エイド
 エイド
(@エイド)
ゲスト
結合: 20年前
投稿: 5
Topic starter  

お世話になります。

VC2005を使用しているのですが、
インクルードディレクトリの指定で質問があります。

例えば、AAAというディレクトリがあり、
その中にBBBとCCCというサブディレクトリがあるとします。

で、BBBとCCCにそれぞれファイル名(仮にtest.hとします)が同じですが
内容の違うヘッダーファイルを置いたとします。

この時に、VCのインクルードディレクトリでAAAとCCCだけを追加した場合に

#include <test.h>

とした場合は、BBBのtest.hがインクルードされてしまうのですが、
これはどのIDEでもそういうものなのでしょうか?

AAAをインクルードディレクトリにしない場合はCCCのtest.hが読み込まれます。
また、AAAのインクルードディレクトリ指定よりも上にCCCのインクルードディレクトリを
指定した場合もCCCのtest.hが読み込まれます。


引用解決済
トピックタグ
chamaro
 chamaro
(@chamaro)
ゲスト
結合: 17年前
投稿: 19
 

IDEの実装によるのではないでしょうか?


返信引用
オレンジフィッシュ
 オレンジフィッシュ
(@オレンジフィッシュ)
ゲスト
結合: 18年前
投稿: 58
 

> 例えば、AAAというディレクトリがあり、
> その中にBBBとCCCというサブディレクトリがあるとします。
インクルードのディレクトリにAAAを設定した場合には
1...#include <bbb/test.h>
2...#include <ccc/test.h>
で使い分けれる。

もしインクルードのディレクトリにBBBを設定すると
#include <test.h>
でBBBのtest.hをインクルードするのでCCCの同名ファイルはインクルードしない。
ただし、CCCもインクルードのディレクトリで設定されているとどうなるかは
分からないので適当な定数を #define で定義して#if defined(定数名)で
実際に調べた方が良い。

> AAAをインクルードディレクトリにしない場合はCCCのtest.hが読み込まれます。
> また、AAAのインクルードディレクトリ指定よりも上にCCCのインクルードディレクト
リを
> 指定した場合もCCCのtest.hが読み込まれます。
この動作は当然だと思う。
登録したインクルードのディレクトリの順番に検索している。と思うから。


返信引用
ku
 ku
(@ku)
ゲスト
結合: 24年前
投稿: 312
 

> この時に、VCのインクルードディレクトリでAAAとCCCだけを追加した場合に
> #include <test.h>
> とした場合は、BBBのtest.hがインクルードされてしまうのですが、
> これはどのIDEでもそういうものなのでしょうか
これはAAAがあると、サブディレクトリもインクルードの検索対象になる
という意味だと思いますが、標準の設定で試したところVC2005ではなりません
(インクルードディレクトリにサブディレクトリを含む機能があるかどうか知りませ
ん)

AAAのディレクトリだけインクルードディレクトリに指定すると
fatal error C1083: include ファイルを開けません。
というエラーになりました


返信引用
横から
 横から
(@横から)
ゲスト
結合: 17年前
投稿: 2
 

インクルード指定したディレクトリ内のサブディレクトリまで検索してくれましたっけ?

IDEによってサブディレクトリまで検索してくれる???


返信引用
関係者以外ウンウン
 関係者以外ウンウン
(@関係者以外ウンウン)
ゲスト
結合: 17年前
投稿: 2
 

されないと思う。
OpenGLのヘッダファイルをインクルードするときは、基本的に
#include <gl/glu32.h> とかいう風にやってます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました