abi

No implementation found for void com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator()

南笙酒味 提交于 2019-12-22 03:33:10
问题 I'm new to Unity, I'm trying to integrate Unity game(it has ARcore) into the native Android application. I'm able to launch unity in a new HelloWorld app but unable to launch in my real app(which has other modules). Note: When I'm building an android library from Unity project, I'm including armeabi-v7a and x86 architectures. java.lang.UnsatisfiedLinkError: No implementation found for void com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator() (tried Java_com_unity3d_player

C# interface breakage, ABI

十年热恋 提交于 2019-12-21 04:06:08
问题 Suppose we have the class X in version 1 of the assembly A.dll : class X { SomeType Property { set; get; } } and then in version 2 of the assembly A.dll : class X { SomeType Property { set; get; } SomeType OtherProperty { set; get; } } Now suppose we have a second assembly B.dll that loads A.dll and uses X. Will the addition of the property OtherProperty break the ABI? Will B.dll fail to use A.dll / X ? If not, would the order of the declarations make any difference? If the properties had

Exclude abi from apk

对着背影说爱祢 提交于 2019-12-21 03:42:11
问题 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 回答1: You can try setting up another flavor that contains

How to expose STL list over DLL boundary?

天涯浪子 提交于 2019-12-20 09:47:52
问题 I have a DLL which needs to access data stored in STL containers in the host application. Because C++ has no standard ABI, and I want to support different compilers, the interface between the application and DLL basically has to remain plain-old-data. For vectors this is relatively straightforward. You can simply return the memory block of the vector, because it is guaranteed to be contigious: // To return vector<int> data virtual void GetVectorData(const int*& ptr, size_t& count) const { if

If clang++ and g++ are ABI incompatible, what is used for shared libraries in binary?

人盡茶涼 提交于 2019-12-18 12:48:12
问题 clang++ and g++ are ABI incompatible, even for things as core as standard containers, according to, e.g., the clang++ website. Debian ships with C++ shared libraries, i.e. libboost, etc... that are compiled with ~something and user programs using both compiler generally work, and the library names aren't mangled with the compiler that was used for them. When you install clang, debian doesn't go and pull in duplicate versions of every C++ library installed on your system. What's the deal? Is

Do Visual Studio 2012 updates break C++ ABI?

三世轮回 提交于 2019-12-18 10:59:08
问题 When Microsoft initially released Visual Studio 2012 in September 2012, they announced their plan for providing updates for Visual Studio on a more regular basis. Since then, they have released Visual Studio 2012 Update 1 (Visual Studio 2012.1) in November 2012 and Visual Studio 2012 Update 2 (Visual Studio 2012.2) in April 2013. My question is: Did the updates introduce any changes to the C++ ABI (with regard to the initial VS2012 version)? Is it safe to link .lib s of different VS2012

Can you mix c++ compiled with different versions of the same compiler

烂漫一生 提交于 2019-12-18 10:47:25
问题 For example could I mix a set of libraries that have been compiled in say GCC-4.6 with GCC-4.9. I'm aware different compilers "breeds" such as VS cannot be with MinGW but can different generations of the same compiler? Are issues likely to occur? If so what? 回答1: Different generations of the same compiler sometimes can be compatible with each other, but not always. For example, GCC 4.7.0 changed its C/C++ ABI, meaning libraries compiled with 4.7.0+ and 4.7.0- are not likely to be compatible

C++ on x86-64: when are structs/classes passed and returned in registers?

孤街醉人 提交于 2019-12-18 05:49:06
问题 Assuming the x86-64 ABI on Linux, under what conditions in C++ are structs passed to functions in registers vs. on the stack? Under what conditions are they returned in registers? And does the answer change for classes? If it helps simplify the answer, you can assume a single argument/return value and no floating point values. 回答1: The ABI specification is defined here. A newer version is available here. I assume the reader is accustomed to the terminology of the document and that they can

Setting extra bits in a bool makes it true and false at the same time

我只是一个虾纸丫 提交于 2019-12-17 18:34:15
问题 If I get a bool variable and set its second bit to 1, then variable evaluates to true and false at the same time. Compile the following code with gcc6.3 with -g option, ( gcc-v6.3.0/Linux/RHEL6.0-2016-x86_64/bin/g++ -g main.cpp -o mytest_d ) and run the executable. You get the following. How can T be equal to true and false at the same time? value bits ----- ---- T: 1 0001 after bit change T: 3 0011 T is true T is false This can happen when you call a function in a different language (say

Linking problems due to symbols with abi::cxx11?

一笑奈何 提交于 2019-12-17 10:56:06
问题 We recently caught a report because of GCC 5.1, libstdc++ and Dual ABI. It seems Clang is not aware of the GCC inline namespace changes, so it generates code based on one set of namespaces or symbols, while GCC used another set of namespaces or symbols. At link time, there are problems due to missing symbols. If I am parsing the Dual ABI page correctly, it looks like a matter of pivoting on _GLIBCXX_USE_CXX11_ABI and abi::cxx11 with some additional hardships. More reading is available on Red