abi

undefined reference to `std::__cxx11::basic_string<char,

最后都变了- 提交于 2019-12-04 07:59:22
centos上编译报错,部分信息如下: /usr/local/lib/libprotobuf.so.9: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_first_of(char, unsigned long) const@GLIBCXX_3.4.21' /usr/local/lib/libboost_regex.so.1.68.0: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21' /home/jwy/pytorch/torch/lib/libtorch.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4

How to safely deploy an application built with an upgraded compiler

纵然是瞬间 提交于 2019-12-04 06:42:32
问题 I have an application that is deployed on a centos 6.7 plateform and built with the native C++ compiler of the distribution, that is gcc 4.4.7. Now for some reasons ( actually, upgrade to Qt 5.7 ), i need to use a modern compiler with C++11 features fully supported, let's say gcc 4.8.2 from devtoolset-2. Another possibility was to built a new version of gcc from the sources. According to https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html the 4.8.3 (but 4.8.2 is not mentionned ) version

What are the real ELF TLS ABI requirements for each cpu arch?

时间秒杀一切 提交于 2019-12-04 00:46:20
问题 Ulrich Drepper's paper on thread-local storage outlines the TLS ABI for several different cpu architectures, but I'm finding it insufficient as a basis for implementing TLS for two reasons: It omits a number of important archs like ARM, MIPS, etc. (while including a bunch of completely-irrelevant ones like Itanium) More importantly, it mixes a lot of implementation details with ABI, so that it's hard to tell which properties are required for interoperability, and which are just aspects of his

Is the Java Native Interface (JNI) affected by C++ ABI compatibility issues?

烈酒焚心 提交于 2019-12-03 16:39:08
问题 Is the Java Native Interface (JNI) affected by C++ ABI compatibility issues? I am developing a Java application. I would like to use the Java Native Interface (JNI) to call functions in a C++ library. I have access to the code for the C++ library, and I can rebuild it however I may need to. (For example, I can statically link the C++ runtime.) I can require my users to have JRE 6 or greater, but I can't require them to have any particular C++ runtime. A coworker pointed me to this blog

C Runtime objects, dll boundaries

折月煮酒 提交于 2019-12-03 14:46:52
What is the best way to design a C API for dlls which deals with the problem of passing "objects" which are C runtime dependent (FILE*, pointer returned by malloc, etc...). For example, if two dlls are linked with a different version of the runtime, my understanding is that you cannot pass a FILE* from one dll to the other safely. Is the only solution to use windows-dependent API (which are guaranteed to work across dlls) ? The C API already exists and is mature, but was designed from a unix POV, mostly (and still has to work on unix, of course). You asked for a C, not a C++ solution. The

Differences between arm “versions?” (ARMv7 only)

我的未来我决定 提交于 2019-12-03 14:44:50
问题 Basically I would like to know the difference between ARMv7l and ARMv7 h l? I got a arm processor with armv7l and there are a lot of rpm's for armv7 h l. I don't exactly know what I have to search for to get information about that. What is this "suffix" called? Are there any other types? What are they doing differently? 回答1: I would assume that it's indicating packages compiled for l ittle-endian and h ard-float ABI as appropriate - i.e. it's a software thing and only tangentially related to

Exclude abi from apk

感情迁移 提交于 2019-12-03 11:19:33
In my application I use renderscript which has native code for x86, armeabi-v7a and mips (~2.7Mb each). Also I read that the mips architecture has just a few devices. So I'd like to bundle my application in two APKs: universal (eg. x86 and armeabi-v7a) and mips. I found that split section helps to create apk for mips, but universal apk still contains mips architecture. So my question is how to exclude abi from result apk? Thanks You can try setting up another flavor that contains everything but MIPS. In the build.gradle file from one of the test projects that are part of the Android Gradle

When do we break binary compatibility

丶灬走出姿态 提交于 2019-12-03 09:51:40
问题 I was under the impression that whenever you do one of these: Add a new public virtual method virtual void aMethod(); Add a new public non-virtual method void aMethod(); Implement a public pure-virtual method from an interface virtual void aMethod override; Was actually breaking binary compatibility, meaning that if a project had build on a previous version of the DLL, it would not be able to load it now that there is new methods available. From what I have tested using Visual Studio 2012,

GCC/Clang x86_64 C++ ABI mismatch when returning a tuple?

时光毁灭记忆、已成空白 提交于 2019-12-03 09:22:34
问题 When trying to optimize return values on x86_64, I noticed a strange thing. Namely, given the code: #include <cstdint> #include <tuple> #include <utility> using namespace std; constexpr uint64_t a = 1u; constexpr uint64_t b = 2u; pair<uint64_t, uint64_t> f() { return {a, b}; } tuple<uint64_t, uint64_t> g() { return tuple<uint64_t, uint64_t>{a, b}; } Clang 3.8 outputs this assembly code for f : movl $1, %eax movl $2, %edx retq and this for g : movl $2, %eax movl $1, %edx retq which look

ARM compilation error, VFP registered used by executable, not object file

匿名 (未验证) 提交于 2019-12-03 09:05:37
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have been having this problem for the last few days and I can't get my head around what is really happening here, or what is the problem. I have a makefile with these flags: CC = arm-linux-gnueabihf-gcc-4.6 FLAGS = -O3 -march=armv7-a -mtune=cortex-a9 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -std=gnu99 I have a library in a .a file, which has some object files, all I need to do is link them in with my executable. I know the prototypes and all that, the only thing that complains is the following: /usr/bin/ld: error: *EXECUTABLE* uses