mingw gcc で ac プログラムをコンパイルしようとしています。このプログラムは__uint128_t整数を使用しています。同じ64ビットマシンで標準のubuntu gccでコンパイルしようとすると、完全に機能します。しかし、それを mingw の下で Windows 用にコンパイルしようとすると、__uint128_tキーワードさえ認識されません。これは何を意味するのでしょうか?mingw の下に 128 ビット整数はありませんか? そうでない場合、ネイティブ (および FAST) 128 ビット整数を持つ Windows 用のプログラミング言語はありますか?
3 に答える
あなたが必要
- 比較的最近のバージョンの gcc
- ネイティブ 64 ビット整数サポートでコンパイルされたバージョン
__int128_tint64_t次に、64 ビット整数が 32 ビット コンパイルで使用できない場合に 32 ビットでエミュレートされるのと同じ方法で、 のペアを使用してエミュレートされます。
Code::Blocks とデフォルトの mingw インストール (IA32 btw) を使用して同じ問題を解決できましたが、TDM-MinGW64をインストールすると、正常にコンパイルされました (x64 コンパイラを C::B に追加した後)。そのため、mingw ビルドが x64 をターゲットにしており-m64( .__uint128_t
__int128_tただし、使用しているWindows IDEは、特別なGCC拡張機能であるため(前述のとおり)、キーワードとして取り上げられません。
しかし、それを mingw の下で Windows 用にコンパイルしようとすると、単に __uint128_t キーワードさえ認識しません。これは何を意味するのでしょうか?mingw の下に 128 ビット整数はありませんか?
実行しgcc -dM -E - < /dev/null | grep INT128ます。マクロ#define __SIZEOF_INT128__ 16を出力する場合__uint128_tは、利用可能です。マクロを出力しない場合、または 16 未満の場合__uint128_tは使用できません。
128 ビット整数も参照してください- 無意味なドキュメント? GCC ユーザーのメーリング リストで。