ABI Policy And Guidelines - GCC, The GNU Compiler Collection
The C++ Interface
C++ applications often depend on specific language support routines, say for throwing exceptions, or catching exceptions, and perhaps also depend on features in the C++ Standard Library.
The C++ Standard Library has many include files, types defined in those include files, specific named functions, and other behavior. The text of these behaviors, as written in source include files, is called the Application Programing Interface, or API.
Furthermore, C++ source that is compiled into object files is transformed by the compiler: it arranges objects with specific alignment and in a particular layout, mangling names according to a well-defined algorithm, has specific arrangements for the support of virtual functions, etc. These details are defined as the compiler Application Binary Interface, or ABI. From GCC version 3 onwards the GNU C++ compiler uses an industry-standard C++ ABI, the Itanium C++ ABI.
The GNU C++ compiler, g++, has a compiler command line option to switch between various different C++ ABIs. This explicit version switch is the flag -fabi-version. In addition, some g++ command line options may change the ABI as a side-effect of use. Such flags include -fpack-struct and -fno-exceptions, but include others: see the complete list in the GCC manual under the heading Options for Code Generation Conventions.
The configure options used when building a specific libstdc++ version may also impact the resulting library ABI. The available configure options, and their impact on the library ABI, are documented here.
Putting all of these ideas together results in the C++ Standard Library ABI, which is the compilation of a given library API by a given compiler ABI. In a nutshell:
“ library API + compiler ABI = library ABI ”
The library ABI is mostly of interest for end-users who have unresolved symbols and are linking dynamically to the C++ Standard library, and who thus must be careful to compile their application with a compiler that is compatible with the available C++ Standard library binary. In this case, compatible is defined with the equation above: given an application compiled with a given compiler ABI and library API, it will work correctly with a Standard C++ Library created with the same constraints.
To use a specific version of the C++ ABI, one must use a corresponding GNU C++ toolchain (i.e., g++ and libstdc++) that implements the C++ ABI in question.
Từ khóa » Cxxabi_1.3.8 Gcc
-
Version `CXXABI_1.3.8' Not Found (required By /usr/lib/x86_64-linux ...
-
"CXXABI_1.3.8 Not Found" Ubuntu 19.04
-
C++ – Error Building Gcc 4.8.3 From Source: Libstdc++.so.6 ... - ITecNote
-
Libstdc++.so.6: Version `CXXABI_1.3.8' Not Found #15777 - GitHub
-
Anyway To Avoid The Requirement Of Using CXXABI_1.3.8 · Issue #3427
-
[Solved]-Error Building Gcc 4.8.3 From Source: Libstdc++.so.6: Version ...
-
I Have No Ideas About An Error Involving CXXABI
-
Ubuntu – CXXABI_1.3.8 Not Found - Unix Server Solutions
-
ImportError: /lib64/libstdc++.so.6: Version `CXXABI_1.3.8' Not Found
-
Solutions To Similar Problems Version `CXXABI_1.3.8' Not ... - Actorsfit
-
Version `CXXABI_1.3.8' Not Found (required By ...) [duplicate]
-
/usr/lib/x86_64-linux-gnu/libstdc++.so.6: Version CXXABI_1.3.8' Not ...
-
Version `CXXABI_1.3.8′ Not Found - Site Title
-
Centos7升级gcc7.1.0(libstdc++.so.6: Version `CXXABI_1.3.8' Not Found)