(应用程序二进制接口)指定程序,库和操作系统之间的低级接口。例如。哪些寄存器用于传递函数参数。
我正在检查ELF二进制文件是否包含以下代码。我在Virtual Box的Ubuntu x86_64系统上的gcc 7.4.0上将其编译为:gcc -g scratch1.c -o scratch1.out #include void ...
为什么我们仍然不能使用ctypes在2019年从Python调用C ++?
它仍然困扰着我。毕竟,C也没有完全标准化的ABI,但它可以与ctypes一起使用。为什么C ++无法达到相同的目的?我发现此博客文章声称该问题更具政治性...
问题是通过USB在本地OnePlus 7上运行应用程序(“设备支持,但APK仅支持armeabi-v7a,x86_64,arm64-v8a,x86”)
我想直接通过Android Studio将带有USB的全新OnePlus 7测试设备连接到我的开发笔记本电脑,并在其中安装我们的应用。但是,Android Studio会显示以下内容:...并尝试运行...
对于纯C共享库,是否有可能在不破坏API兼容性的同时打破ABI兼容性 另外,如果编写一个提供现有库B的所有API函数的库A,以及一些额外的API函数,库A A...
根据ARM体系结构的过程调用标准(第7.1.5节):编译器可能会忽略对自动变量的易失性限定,除非函数调用...,否则自动地址的地址永远不会被占用...
Swift协议可以在不涉及ABI更改的情况下支持通用协议吗?
为什么Swift在协议中使用关联类型,而不是通用类型?关联类型比通用类型好吗?如果我们希望Swift支持协议通用,它将带来ABI改变吗?为什么?我只是没有...
函数的返回值通常存储在堆栈或寄存器中。但是对于大型结构,它必须处于堆栈中。对于此代码,在真正的编译器中必须进行多少复制? ...
关于数据类型对齐方式的疑问,我现在正在学习对齐方式,并且我有一些问题,所以我知道在使用gcc编译i386体系结构时,linux中的double对齐方式是4字节,所以... ...>] >> < [
我最近发现了阿比迪夫;该工具以两个二进制文件作为输入,并描述了ABI中的差异。这对于检测何时需要更改ABI版本号可能很有用。理想情况下,我们会...
无论如何都是x86汇编代码。我一直在阅读有关函数调用的信息,但是仍然不能完全掌握对基/帧指针(EBP)和堆栈指针(ESP)的需求。当我们调用...
GCC手册描述了-fabi-compat-version = n,该名称用于处理GCC 3.4至9.2以及以后可能稍有变化的C ++ ABI中C ++名称处理的变体。它有一个重要的...
对于32位Windows应用程序是合法使用的临时交换空间低于ESP堆栈存储器没有明确递减ESP?考虑到返回ST(浮点值的函数...
我有一个使用这样的C库:结构美孚{为const char *吧; bool的重要;结构巴兹·巴兹; }最近,我在重要的应该是一个项目中使用它...
如果你在64位代码中使用32位int 0x80的Linux的ABI会发生什么?
INT 0x80的Linux上总是调用32位ABI,不管是什么模式,它是从所谓的:从/usr/include/asm/unistd_32.h在EBX,ECX ...和系统调用号ARGS。 (或崩溃在64位内核...
我正在听我部署合同的事件。每当事务完成并且事件被触发时,接收响应会导致以下错误:未捕获错误:返回值无效,...
我对组装很新,但知道一点c。我正在玩外部函数调用,如extern _printf str db“Hello”,0 push str调用_printf,但无法找到任何使用extern的教程...
在回答问题之前进行快速思考实验。想象一下有人正在实现std :: malloc(比如,一个JEMalloc或TCMalloc人)。他们需要的最基本的东西之一是......
我有一些静态库,我不是它的所有者,用旧版本的g ++ 4.3.2编译(c ++ 11 / c ++ 0x未激活)。当我使用g ++ 4.6(没有c ++ 11)编译我的代码并使用g ++链接它时...
跨平台组装((x64 || x86)&&(Microsoft x64 || SystemV))
我正在尝试编写一些代码,以便了解有关汇编和JIT编译器等内容的更多信息。到目前为止,我已经能够提出一个XOR函数,理论上应该在x86或x64上运行...
我遇到了从源代码编译gdb的问题。我正在下载8.2.1版,但是当我尝试编译它时,我收到以下错误:configure:error:***支持C ++ 11的编译器...