Android 链接两个使用c+构建的库+_静止的
在以下网页中Android 链接两个使用c+构建的库+_静止的,android,c++,android-ndk,static-linking,libc++,Android,C++,Android Ndk,Static Linking,Libc++,在以下网页中 它表示,用 C++ >静态< /COD>编译有两个库(LIBA.so,LIb.so),打破了一个定义规则,其中将为不同库中的C++函数定义多个符号。这种情况是未定义的行为,可能会出现多个bug 但是,我不知道在以下情况下是否也会发生这种情况: 我编译libA.alinked agsintc++\u static 然后我编译libB.so并链接到c++\u static和libA.a 在这种情况下,问题不会发生,将共享库与静态库链接是安全的,对吗?或者是libc++中的符号嵌入
它表示,用<代码> C++ >静态< /COD>编译有两个库(LIBA.so,LIb.so),打破了一个定义规则,其中将为不同库中的C++函数定义多个符号。这种情况是未定义的行为,可能会出现多个bug
但是,我不知道在以下情况下是否也会发生这种情况:- 我编译
linked agsintlibA.a
c++\u static
- 然后我编译
并链接到libB.so
和c++\u static
libA.a
在这种情况下,问题不会发生,将共享库与静态库链接是安全的,对吗?或者是
libc++
中的符号嵌入了libA.a
?它是安全的。事实上,libA.a
和libB.a
都不会链接到libc++
。静态库不会根据其依赖项进行链接-这是在链接使用这些库的可执行文件/共享对象时完成的
libc++
中唯一会在这两个静态lib中结束的代码将是来自头的(内联)代码。这不是问题。是的,出于某种原因,我认为静态链接libc++与其他库有点不同。很高兴知道这一点,谢谢!