[解決済み] プリプロセッサのマクロからプラットフォーム/コンパイラを識別するには?
2022-08-13 02:20:09
質問
Linux、Windows、Mac OSでコンパイルできるクロスプラットフォームなコードを書いています。Windowsでは、私はビジュアルスタジオとmingwをサポートする必要があります。
プラットフォーム固有のコードがいくつかあり、それらは
#ifdef .. #endif
環境に配置する必要があります。例えば、ここではwin32に特化したコードを配置しました。
#ifdef WIN32
#include <windows.h>
#endif
しかし、linuxとmac OSはどのように区別すればいいのでしょうか?定義された名前(またはその他)を使うべきですか?
どのように解決するのですか?
以下のような場合 Mac OS :
#ifdef __APPLE__
について MingW をWindows上で実行します。
#ifdef __MINGW32__
について Linux :
#ifdef __linux__
その他のWindowsコンパイラについては このスレッド および この を他のいくつかのコンパイラやアーキテクチャのために使用します。
関連
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み] プラットフォーム依存の改行文字を取得するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み】プリプロセッサディレクティブでOSをチェックする方法とは?
-
[解決済み】WindowsとLinuxでC++コンパイル:ifdefスイッチ【重複あり