int128使用时的一些问题
本帖最后由 myd0313 于 2023-5-20 14:03 编辑本人代码:
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
__int128 a;
int main() {
return 0;
}
然后,报错了,报错内容是:
expected unqualified-id before '__int128'
其他信息:
语言标准:gnu c++20
编译器:MinGW gcc 9.2.0
真奇怪,这到底是哪里的问题
请不要回到原本的帖子,并且不要查看第 3 页的白字。 编译器的 target 是什么?target 没有支持就没有 128 位整数 dolly_yos2 发表于 2023-2-15 22:11
编译器的 target 是什么?target 没有支持就没有 128 位整数
如何查看target?怎样的target才能支持?如果我的不支持,那怎么解决呢? myd0313 发表于 2023-2-16 07:17
如何查看target?怎样的target才能支持?如果我的不支持,那怎么解决呢?
试试g++ -v应该能看到一行类似 Target: x86_64-w64-mingw32 的输出
总体上似乎常见的32位架构都不支持 __int128,测试了 armv7/armv8, i686,而 aarch64(-linux-android) 和 x86_64(-linux-gnu/-w64-mingw32) 都通过了编译
可以试着重新配置编译器的 target 为能使用且机器支持的值
然而必须指出,<bits/stdc++.h> <bits/extc++.h> 之类的头文件都不属于 C++ 标准,__int128 的命名规则更表明它是一个内部符号名称,使用这些就必须做好它们在其他环境下可能不能编译/运行/正确运行的准备 dolly_yos2 发表于 2023-2-16 10:29
试试应该能看到一行类似 Target: x86_64-w64-mingw32 的输出
总体上似乎常见的32位架构都不支持 __int12 ...
明白了,也许是软件问题吧 dolly_yos2 发表于 2023-2-16 10:29
试试应该能看到一行类似 Target: x86_64-w64-mingw32 的输出
总体上似乎常见的32位架构都不支持 __int12 ...
C:\Users\*******>g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=e:/dev-cpp/mingw32/bin/../libexec/gcc/mingw32/9.2.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-9.2.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --disable-win32-registry --with-arch=i586 --with-tune=generic --enable-static --enable-shared --enable-threads --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtime-libs --enable-libgomp --disable-libvtv --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --disable-build-format-warnings --prefix=/mingw --with-gmp=/mingw --with-mpfr=/mingw --with-mpc=/mingw --with-isl=/mingw --enable-nls --with-pkgversion='MinGW.org GCC Build-2'
Thread model: win32
gcc version 9.2.0 (MinGW.org GCC Build-2)
中间的 Target: mingw32 也就说明这是 32 位对吧,32位 也就不支持 int128 对吧 myd0313 发表于 2023-2-16 11:49
中间的 Target: mingw32 也就说明这是 32 位对吧,32位 也就不支持 int128 对吧
似乎是这样的
页:
[1]