移植可能な C++ アプリケーションを作成しています。実行中のオペレーティング システムに基づいて、さまざまなヘッダーを含めるにはどうすればよいですか。C++ でこれを行う方法はありますか、それともビルド システムを使用する必要がありますか?
3221 次
3 に答える
11
プリプロセッサを使用:
#ifdef _SUNOS
//code
#elseif _LINUX
//code
#elseif _HPUX
//code
#elseif _WIN32
//code
#else
#error OS not supported
#endif
于 2011-05-24T19:23:50.713 に答える
9
プリプロセッサ ディレクティブとCMakeなどのクロスプラットフォーム ビルド システムを使用します。あなたがすることができます:
#ifdef LINUX
#include <unistd.h>
#elif defined(WINDOWS)
#include <algorithm.h>
# elif Defined(MAC_OSX)
//... etc.
#else
#error No operating system defined
#endif
次に、次のような対応するプリプロセッサ フラグをビルドに追加します-DLINUX
。
于 2011-05-24T19:24:30.310 に答える
4
Linux (Red Hat Enterprise 5)、Sun (Solaris)、および Windows で開発しています。私たちのシステムでは、次のようなものを使用します。
#ifndef MSWINDOWS
#include <unistd.h>
#else
#include <winbase.h>
#endif
//More includes here
于 2011-05-24T19:24:08.640 に答える