abi

    1热度

    1回答

    我一直在阅读本节的一段时间,但似乎无法弄清楚。我在AMD64 ABI草案0.99.6,第18页,部分3.32 Parameter Passing和以下文本: __m256类型的参数被拆分为四个八字节块。最不重要的属于SSE类,所有其他属于SSEUP类。 我很困惑,因为它听起来像我使用三个SSEUP寄存器和只有一个SSE,但似乎浪费了与SSEUP相关的其他两个SSE寄存器。我误读了吗?我可能甚至不会

    0热度

    1回答

    我不擅长汇编语言。我正试图调用一个函数foo,它需要10个浮点参数。在前八个之后,使用xmm0-xmm7寄存器,将参数压入堆栈。除了最后两个浮点值之外,我得到了几乎正确的结果,这是我放入堆栈的那些值。 我认为我的错误是我如何调用push,并与值保持一致。虽然我不确定,但我一直无法找出解决方案。我认为这将是一个相当简单的修复。 下面是一个例子一块的什么,我想实现代码: #include <iostr

    0热度

    2回答

    This SO post: Is Visual-C++-2017 binary compatible with VC++-2015?很明显地说VS 2016与VS 2015是二进制兼容的,它甚至看起来像官方位置。 我的问题是,在过去,我清楚地记得运行到链接器错误(我不记得具体的一组错误),每次我试图链接在一个静态库编译了不同版本的MSVC转换为使用MSVC的新版本构建的EXE。 然而,二进制(in

    0热度

    2回答

    我用下面的Json一个问题: [ { constant: false, inputs: [Object], name: 'set', outputs: [], type: 'function' }, { constant: true, inputs: [], name: 'get', outputs: [Object],

    5热度

    1回答

    序言 有一大块的代码,我目前无法分解成一个MCVE工作,所以我会尽我最好。 问题 我与编译为静态库,libfoo.a一个大型的项目。一个单独的项目bar与该库链接。 “攻击”片段在libfoo如下: class Base { public: void foo(){} void bar(){} }; class Derived : private Base { publ

    2热度

    1回答

    当我尝试编译C代码,其中包括另一C头我得到这个错误以前声明: x86_64-uefi/../../libk/string.h:9:10: error: function declared 'ms_abi' here was previously declared without calling convention KABI int memcmp(const void *d1, co

    -1热度

    1回答

    我有一个关于使用NDK本机库访问的小疑问。 是否可以使用JNI访问库中的本地函数?我有一个完全建立在C++上的库,是否可以加载该外部库并编写JNI与库中的函数进行通信? 如果无法将该JNI class嵌入库中并与Android活动进行通信?

    0热度

    1回答

    我安装了Qt 5.9.1,并在安装过程中选择了Android x86。 Qt Creator IDE会自动检测“Android for x86”-Kit,但是当我尝试将我的程序部署到智能手机时,Qt Creator会指出手机具有不兼容的ABI。 我抬头看看手机,发现我需要ABI arm64-v8a,armeabi-v7a或armeabi。我使用Android SDK为目标Android版本安装了这

    1热度

    1回答

    ABI-合规性检查是一个Perl程序,可以运行在Linux检查库的ABI(https://lvc.github.io/abi-compliance-checker/) 该工具有一个-extended选项,这里是什么手册说一下吧: 如果你的库A应该被其他库B使用,并且你想控制B的ABI,那么你应该启用这个选项。该工具将检查所有数据类型的变化,即使它们未被库A中的任何函数使用。此类数据类型不是A库AB

    1热度

    1回答

    假设我们有一个C(或C++)具有以下签名功能: void foo(int64_t a, double b, int64_t c, double d); 当在Linux,Mac,或者使用System V的ABI(x86_64的)任何OS编译,a和c获得通过的rdi和rsi寄存器,b和d通过xmm0和xmm1。好的,这没什么不妥。但是,我在Windows(x86_64)中也是这样做的,它看起来像跳