链接两个使用 c++ 构建的库_static
Linking two libraries built with c++_static
在下面的网页中,
https://developer.android.com/ndk/guides/cpp-support
它指出,使用c++_static
编译两个库(libA.so、libB.so(会破坏一个定义规则,在该规则中,将为不同库中的 C++ 函数定义多个符号。这种情况是未定义的行为,可能会出现多个错误。
但是,我不知道以下情况是否也会发生这种情况:
- 我编译
libA.a
链接的agsintc++_static
- 然后我编译
libB.so
并针对c++_static
和libA.a
进行链接
在这种情况下,问题就不会发生,并且将共享库与静态库链接是安全的,我说得对吗?还是libc++
中的符号嵌入libA.a
?
它是安全的。事实上,libA.a
和libB.a
都不会与libc++
联系起来。静态库不链接到它们的依赖项 - 这是在链接使用这些库的可执行文件/共享对象时完成的。
最终出现在这两个静态库中的唯一来自libc++
的代码将是来自标头的(内联(代码。这不是问题。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 构建一个由C和C++文件组成的库
- llvm构建器向基本块添加终止符
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 如何跨平台将二进制资源构建到程序中?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 如何解决 Ninja c++ 构建和执行问题
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- CMake WxWidgets项目成功地在Linux上构建,但没有在Windows上构建
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 用CMake构建C++协议
- Mingw-64 在构建和安装后不会编译 openCV 代码