草庐IT

itanium-abi

全部标签

c++ - Visual Studio 2012 更新是否会破坏 C++ ABI?

当Microsoft在2012年9月最初发布VisualStudio2012时,他们宣布了更定期为VisualStudio提供更新的计划。从那以后,他们发布了VisualStudio2012Update1(VisualStudio2012.1)2012年11月和VisualStudio2012Update2(VisualStudio2012.2)2013年4月。我的问题是:更新是否对C++ABI进行了任何更改(关于初始VS2012版本)?链接不同VS2012版本的.lib安全吗?我在互联网上搜索了一段时间,没有找到任何来自微软的明确声明。一些sources提到C++代码生成中的一些错误

c++ - 用于维护 API 向后二进制兼容性的 GCC 与 MS C++ 编译器

我来自Linux世界,知道很多关于维护用C++语言编写的动态库API的向后二进制兼容性(BC)的文章。其中之一是"Policies/BinaryCompatibilityIssuesWithC++"基于ItaniumC++ABI,由GCC编译器使用。但我找不到与MicrosoftC++编译器(来自MSVC)类似的东西。我了解大多数技术都适用于MSC++编译器,我想发现与ABI差异(v-table布局、修改等)相关的编译器特定问题所以,我的问题如下:在维护BC时,您知道MSC++和GCC编译器之间的区别吗?在哪里可以找到有关MSC++ABI或在Windows中维护APIBC的信息?任何相

c++ - 用于维护 API 向后二进制兼容性的 GCC 与 MS C++ 编译器

我来自Linux世界,知道很多关于维护用C++语言编写的动态库API的向后二进制兼容性(BC)的文章。其中之一是"Policies/BinaryCompatibilityIssuesWithC++"基于ItaniumC++ABI,由GCC编译器使用。但我找不到与MicrosoftC++编译器(来自MSVC)类似的东西。我了解大多数技术都适用于MSC++编译器,我想发现与ABI差异(v-table布局、修改等)相关的编译器特定问题所以,我的问题如下:在维护BC时,您知道MSC++和GCC编译器之间的区别吗?在哪里可以找到有关MSC++ABI或在Windows中维护APIBC的信息?任何相

c++ - 在 Itanium C++ ABI 中,为什么模板函数的错误名称无法解析依赖的 typedef?

例如:templatestructfoo{usingbar=int;};//_Z3bazivoidbaz(foo::barquux){}templatevoidbaz(typenamefoo::barquux){}//_Z3bazIiEvN3fooIT_E3barEtemplatevoidbaz(foo::barquux);为什么baz的格式不正确?提foo有吗?怎么不是_Z3bazIiEvi?这显然是C++17std::default_order的原因。提案已死在水中。 最佳答案 问题来自在ABI中构建。为什么我们要使用未解析的名

c++ - 在 Itanium C++ ABI 中,为什么模板函数的错误名称无法解析依赖的 typedef?

例如:templatestructfoo{usingbar=int;};//_Z3bazivoidbaz(foo::barquux){}templatevoidbaz(typenamefoo::barquux){}//_Z3bazIiEvN3fooIT_E3barEtemplatevoidbaz(foo::barquux);为什么baz的格式不正确?提foo有吗?怎么不是_Z3bazIiEvi?这显然是C++17std::default_order的原因。提案已死在水中。 最佳答案 问题来自在ABI中构建。为什么我们要使用未解析的名

c++ - 哪些平台具有不兼容的 C 和 C++ ABI?

我刚刚注意到C++标准规定C和C++函数具有不同且不兼容的类型,即使它们的类型签名相同(更多信息参见thisquestion)。这意味着从技术上讲,您不允许将C++函数传递给像pthread_create()这样的C函数。我很好奇是否存在两个ABI实际上不同的平台(除了明显的名称修饰差异)。具体来说,有谁知道这个C++程序在哪些平台编译和运行失败?#includeextern"C"intrun(int(*f)(int),intx){returnf(x);}inttimes2(intx){returnx*2;}intmain(intargc,char*argv[]){inta=times

c++ - 哪些平台具有不兼容的 C 和 C++ ABI?

我刚刚注意到C++标准规定C和C++函数具有不同且不兼容的类型,即使它们的类型签名相同(更多信息参见thisquestion)。这意味着从技术上讲,您不允许将C++函数传递给像pthread_create()这样的C函数。我很好奇是否存在两个ABI实际上不同的平台(除了明显的名称修饰差异)。具体来说,有谁知道这个C++程序在哪些平台编译和运行失败?#includeextern"C"intrun(int(*f)(int),intx){returnf(x);}inttimes2(intx){returnx*2;}intmain(intargc,char*argv[]){inta=times

面向开发人员的 Solidity:使用Solidity进行ABI编码和解码

面向开发人员的Solidity:使用Solidity进行ABI编码和解码智能合约基本上由状态变量和函数组成。有些函数是私有的,只能从合约内部访问,但许多函数是公共的,可以从合约外部访问。也就是说,应用程序(和人)可以向合约发送数据并从合约中检索数据。要将数据发送到合约,我们需要以合约可以读取的方式发送数据。也就是说,它们需要被编码。如何执行这种编码的规则由以太坊虚拟机(EVM)的实现定义。在本文中,我们将学习一些关于编码规则的知识,以及如何使用solidity对必须作为函数参数发送的数据进行编码和解码。使用abi.encode()对函数的参数进行编码Solidity有一个名为abi的全局变量,

Android 安装时报错INSTALL_FAILED_NO_MATCHING_ABIS

在安装App到手机上是提示安装错误:INSTALL_FAILED_NO_MATCHING_ABIS错误原因:是由于使用了nativelibraries 。该nativelibraries 不支持当前的cpu的体系结构。常见的cpu架构通过adbshell查看CPU架构: 查看设备系统架构:C:\Users\Desktop>adbshelltb_bsp:/$getpropro.product.cpu.abiarmeabi-v7aarmeabi-v7a类型查看CPU详情:tb_bsp:/$cat/proc/cpuinfoprocessor:0Processor:ARMv7Processorrev4

Android 安装时报错INSTALL_FAILED_NO_MATCHING_ABIS

在安装App到手机上是提示安装错误:INSTALL_FAILED_NO_MATCHING_ABIS错误原因:是由于使用了nativelibraries 。该nativelibraries 不支持当前的cpu的体系结构。常见的cpu架构通过adbshell查看CPU架构: 查看设备系统架构:C:\Users\Desktop>adbshelltb_bsp:/$getpropro.product.cpu.abiarmeabi-v7aarmeabi-v7a类型查看CPU详情:tb_bsp:/$cat/proc/cpuinfoprocessor:0Processor:ARMv7Processorrev4