C言語関係掲示板

過去ログ

No.992 LinuxとWindowsとでヘッダーファイルを切り替える

[戻る] [ホームページ]
No.12956

LinuxとWindowsとでヘッダーファイルを切り替える。
投稿者---山吹次郎丸(2004/02/25 17:49:33)


 はじめまして。

 下位ディレクトリの中のファイル名を検索する機能を持ったプログラムを作っています。

そのプログラムをLinuxでもWindowsでも動作するように改良しているところなのですが、
Windowsでは不可欠なヘッダーファイル<windows.h>がLinuxにはなく、
Linuxでは不可欠な<dirent.h>がWindowsにはないので、
両方をインクルードしようとするとコンパイルの時にエラーが出てしまいます。

インクルードする際に、自動的にOSを判別して、それに応じてインクルードするヘッダーファイルを切り替える機能を持たせることができれば、LinuxでもWindowsでも機能するプログラムは作成可能だと思うのですが、その実現方法がわかりません。

どなたか方法をご存知の方がいらっしゃったら、ご助言をお願いします。

No.12959

Re:LinuxとWindowsとでヘッダーファイルを切り替える。
投稿者---pi-ta(2004/02/25 18:50:32)


それぞれのコンパイラのマニュアルをよく見てください。
どんなコンパイラにも定義済みマクロがありますから

#ifdef XXXXX
#include <Windows.h>
#else
#include <dirent.h>
#endif

などのように、条件コンパイルすればすみます。
Windows用コンパイラでしたら _Windows あたりが定義されていると思いますけど。



No.12970

pi-taさんありがとうございます。
投稿者---山吹次郎丸(2004/02/26 09:19:01)


教えていただいた方法で、うまくインクルードファイルを切り替えることができました。

これでプログラムが完成できそうです。

ご教示ありがとうございました。