Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 链接两个使用c+构建的库+_静止的_Android_C++_Android Ndk_Static Linking_Libc++ - Fatal编程技术网

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

但是,我不知道在以下情况下是否也会发生这种情况:

  • 我编译
    libA.a
    linked agsint
    c++\u static
  • 然后我编译
    libB.so
    并链接到
    c++\u static
    libA.a

在这种情况下,问题不会发生,将共享库与静态库链接是安全的,对吗?或者是
libc++
中的符号嵌入了
libA.a

它是安全的。事实上,
libA.a
libB.a
都不会链接到
libc++
。静态库不会根据其依赖项进行链接-这是在链接使用这些库的可执行文件/共享对象时完成的


libc++
中唯一会在这两个静态lib中结束的代码将是来自头的(内联)代码。这不是问题。

是的,出于某种原因,我认为静态链接libc++与其他库有点不同。很高兴知道这一点,谢谢!