草庐IT

itanium-abi

全部标签

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

c++ - 对 google::protobuf::internal::empty_string_[abi:cxx11] 的 undefined reference

我正在尝试使用ProtocolBuffers2.6.1和GNUGCC5.1.0(在Ubuntu14.10上)构建简单的测试应用程序,但出现以下错误:/home/ragnar/cpp-tools/gcc-linux/bin/g++-c"/home/ragnar/cpp-projects/gprotobuf_test/main.cpp"-g-O0-Wall-o./Debug/main.cpp.o-I.-I/home/ragnar/cpp-tools/libs/linux64/protobuf/include-I./home/ragnar/cpp-tools/gcc-linux/bin/g+

c++ - 了解 GCC 5 的 _GLIBCXX_USE_CXX11_ABI 或新的 ABI

https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html我在GCC5上使用std::string时遇到了崩溃/valgrind问题。上面的链接暗示从GCC5.x开始的ABI发生了变化。libstd++的新默认ABI是C++11/14...,它与旧ABI不兼容。有一种方法可以使用定义来选择较旧的ABI。我正在尝试了解ABI之间的区别,但尚未找到详细信息。我想帮助理解:需要修复std::string的哪些问题才能与新的ABI兼容?它们是否与写时复制相关?这些更改会破坏旧ABI的功能吗?让_GLIBCXX_USE_

c++ - 如果 clang++ 和 g++ 不兼容 ABI,那么二进制中的共享库使用什么?

clang++和g++不兼容ABI,即使对于像标准容器这样的核心,根据例如clang++网站。Debian附带C++共享库,即libboost等...,它们是用~something编译的,并且使用这两种编译器的用户程序通常都可以工作,并且库名称不会与用于它们的编译器混淆。当您安装clang时,debian不会去拉入您系统上安装的每个C++库的重复版本。有什么关系?clang链接发行版提供的C++库的能力是否比(谢天谢地谨慎)编译器开发人员描述的要强得多? 最佳答案 evenforthingsascoreasstandardconta

android - Bitbucket 管道 : No toolchains found in the NDK toolchains folder for ABI with prefix: aarch64-linux-android

我是BitbucketPipelines的CI新手目前正在thisarticle的帮助下建立管道.由于此错误,我的构建失败"NotoolchainsfoundintheNDKtoolchainsfolderforABIwithprefix:aarch64-linux-android"谁能帮我解决这个问题? 最佳答案 今天我遇到了和你一样的问题。我也关注了blogpost你提到的。任何。我很高兴向您报告:我已修复它并找到了“解决方案”!?有趣的是:解决方案如此简单。你唯一要做的就是到unset(或删除)NDK环境变量(或目录)。魔法线

android - 检索 ro.product.cpu.abi 的设备属性时出错 :

我无法使用物理设备运行我的Flutter应用程序。使用Android模拟器就像一种魅力,但不适用于物理设备。我尝试使用不同的设备但不起作用。当然我已经安装了GoogleUSBDriver,rev11我还把我的手机设置为“USB调试”使用Android原生项目,我在pyshical设备上运行没有问题。您可能想知道的信息:Android工作室版3.2.1Flutter和Dart信息channelbeta•https://github.com/flutter/flutter.gitFramework•revisionf37c235c32(4weeksago)•2018-09-2517:45:

flutter - 找不到名为 "split-per-abi"的选项

在使用flutterbuildapk构建APK文件时,请问什么版本的Flutter支持--split-per-abi选项。我正在使用Flutter1.5.4-hotfix.2仍然无法访问该选项。根据文档PreparinganAndroidappforrelease,ThiscommandresultsintwoAPKfiles:/build/app/outputs/apk/release/app-armeabi-v7a-release.apk/build/app/outputs/apk/release/app-arm64-v8a-release.apkRemovingthe--spli