草庐IT

ABI_VOLUME_EXPOSURE

全部标签

android - "Unable to find a userdata.img file for ABI armeabi..."

我又一次犯了用最新的AndroidSDK/工具更新Eclipse的错误,并使它变得毫无用处。在Mac上运行Eclipse。当我尝试创建AVD时,它告诉我“无法找到ABIarmeabi的userdata.img文件”。我在这里阅读了所有类似的问题,这些问题告诉我去运行/运行配置并确保我下载了最新的“ARMEABIv7a系统镜像”。我已经做到了。我已经重新启动了我的机器。还是不开心。FWIW我不想创建4.x模拟器;只有2.3.3。更新:我可以成功地创建一个具有所有相同参数(屏幕大小、存储卡大小、内存等)的2.2模拟器,就像我尝试2.3.3一样。此外,我可以使用这些参数成功创建一个4.x模拟

Android 虚拟设备 (AVD) -- 我应该选择哪个 CPU/ABI?

创建AVD时,有三个CPU/ABI选项可供选择:ARM米普斯英特尔凌动有什么区别,我应该选择哪一个?有没有一款可以覆盖大多数设备? 最佳答案 根据android开发人员文档,您实际上应该为您打算在其上运行代码的每个框架和平台创建一个虚拟设备,也就是说,目前市场上的大多数移动设备都在ARM架构上运行。您应该仍然在不同的虚拟设备上为您的代码支持的每个级别的框架测试您的代码。SystemImageRecommended.AlthoughyoumighthaveoneormoreAndroid-powereddevicesonwhichto

Android ndk-build 忽略 APP_ABI := x86

我正在尝试运行NDK来编译native代码以在Atom(x86)处理器和ARM上运行。无论我如何设置APP_ABI,NDK都在生成armeabi库。即使我只为APP_ABI放置x86。并且文件大小始终相同。这是我的Application.mk文件:LOCAL_PATH:=$(callmy-dir)APP_ABI:=x86include$(CLEAR_VARS)LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib-llogLOCAL_MODULE:=myjni-jniLOCAL_SRC_FILES:=myjni-jni.cinclude$(BUILD_SHARED_LIB

c++ - Itanium ABI 在多大程度上真正指定了填充和对齐?

有人告诉我:[ABIs]guaranteetheexactlayoutofthestruct,byteoffsetofeverymember,whichbitsareusedforbitfields,whereandhowmuchpaddingthereis,etc...但我一直认为填充和对齐是未指定且不可靠的。是否theItaniumABI(GCC使用的)实际上指定了这些东西(据我所知,itdoesn'tappearto超出了指定范围)?如果是这样,像__attribute__((packed))这样的选项如何适应呢?他们最终是否会通过改变事物的对齐方式来破坏ABI?或者,正如引用者

java - Java Native Interface (JNI) 是否受 C++ ABI 兼容性问题的影响?

Java原生接口(interface)(JNI)是否受到C++ABI兼容性问题的影响?我正在开发一个Java应用程序。我想使用Javanative接口(interface)(JNI)来调用C++库中的函数。我可以访问C++库的代码,并且可以根据需要重新构建它。(例如,我可以静态链接C++运行时。)我可以要求我的用户拥有JRE6或更高版本,但我不能要求他们拥有任何特定的C++运行时。一位同事向我推荐了这篇博客文章:http://www.trilithium.com/johan/2005/06/static-libstdc/建议不要使用动态加载的C++代码。另一位同事向我指出了这个错误报告

c++ - 返回元组时 GCC/Clang x86_64 C++ ABI 不匹配?

尝试tooptimizereturnvaluesonx86_64时,我注意到一件奇怪的事情。即,给定代码:#include#include#includeusingnamespacestd;constexpruint64_ta=1u;constexpruint64_tb=2u;pairf(){return{a,b};}tupleg(){returntuple{a,b};}Clang3.8outputsf的这个汇编代码:movl$1,%eaxmovl$2,%edxretq这对于g:movl$2,%eaxmovl$1,%edxretq看起来最佳。然而,当compiledwithGCC6.1

c++ - Visual Studio 版本之间的库 ABI 兼容性

我有两种情况。假设我有3个导出C++符号的共享库,每个库都是用VS7.1、VS8和VS9构建的。我在VS9中编译了所有3个。出于某种原因,这行得通。我不需要为VS9链接器重新编译VS9中的前2个库来成功找到符号并链接它们。现在,如果我有一个只使用C语法(extern"C")导出符号的库,这是否相同?我听说有人说C的ABI是标准化的,因此可以保证您可以在所有版本的VisualStudio中使用在VisualStudio8中编译的C库。基本上,所有这些东西的组合是令人困惑的。我不确定在不同版本的VisualStudio之间链接C++和基于C的共享库(使用它们相应的导入库)之间有什么保证。我

c++ - 由于符号与 abi::cxx11 的链接问题?

我们最近因为GCC5.1,libstdc++andDualABI收到了一份报告.好像ClangisnotawareoftheGCCinlinenamespacechanges,因此它基于一组命名空间或符号生成代码,而GCC使用另一组命名空间或符号。在链接时,由于缺少符号而出现问题。如果我正在解析DualABI页面正确,看起来像是在_GLIBCXX_USE_CXX11_ABI和abi::cxx11上进行旋转的问题,还有一些额外的困难。更多阅读请访问RedHat的博客GCC5andtheC++11ABI和TheCaseofGCC-5.1andtheTwoC++ABIs.以下来自Ubuntu

c++ - ARM C++ ABI : Constructor/destructor return values

我一直在阅读Clang源代码,并发现了一些关于ARMC++ABI的有趣之处,我似乎无法理解其理由。来自ARMABIdocumentation的在线版本:ThisABIrequiresC1andC2constructorstoreturnthis(insteadofbeingvoidfunctions)sothataC3constructorcantailcalltheC1constructorandtheC1constructorcantailcallC2.(对于非虚拟析构函数也是如此)我不确定C1、C2和C3在这里引用什么...本节旨在修改来自通用(即安腾)ABI的第3.1.5节,但

c++ - C++11 的垃圾收集 ABI 有实际用途吗?

C++11引入了interfacetogarbagecollectors.据我所知,它提供了一种与GC通信的标准化方式(例如declare_no_pointers),并获取有关如何处理伪装指针的信息(例如get_pointer_safety)。但是,C++11中还没有标准化的方法来分配原始内存块,您不必手动释放它。即使不调用析构函数,也有一些用例会有所帮助。一个例子是实现高效的并发数据结构(如HerbSutter所述),而无需处理复杂的清理协议(protocol)。到目前为止,一切都很好。我的问题(从普通开发者的角度,而不是GC库开发者的角度):有没有新的C++11GC接口(inter