我正在尝试在android studio 3.1中构建一个本机库。当我构建库时,默认情况下它具有展开符号。我想看看这些符号如何进入我的图书馆。我检查了CMakeoutput.log文件,发现链接器正在通过以下命令执行
C:/Users/psyam/AppData/Local/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9。 x /../../../../ arm-linux-androideabi / bin \ ld“ --sysroot = C:/用户/ psyam / AppData / Local / Android / SDK / ndk-bundle / platforms / android-23 / arch-arm -pie -X --eh-frame-hdr -m armelf_linux_eabi-动态链接器/ system / bin /链接器-o cmTC_6b09f “ C:/ Users / psyam / AppData / Local / Android / Sdk / ndk-bundle / platforms / android-23 / arch-arm / usr / lib /../ lib \ crtbegin_dynamic.o” -LC:/用户/ psyam / AppData /本地/ Android / SDK / NDK捆绑/源/ cxx-stl / llvm-libc ++ / libs / armeabi-v7a “ -LC:\ Users \ psyam \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains \ llvm \ prebuilt \ windows-x86_64 \ lib64 \ clang \ 5.0.300080 \ lib \ linux \ arm” -LC:/用户/ psyam / AppData /本地/ Android / SDK / ndk捆绑/工具链/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/ armv7-a / thumb -LC:/用户/ psyam / AppData /本地/ Android / SDK / ndk捆绑/工具链/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/ ../../../../arm-linux-androideabi/lib/../lib/armv7-a/thumb -LC:/用户/ psyam / AppData /本地/ Android / SDK / NDK捆绑/平台/android-23/arch-arm/usr/lib/../lib -LC:/ Users / psyam / AppData / Local / Android / Sdk / ndk-bundle / platforms / android-23 / arch-arm / usr / lib / arm-linux-androideabi /../../ lib -LC:/用户/ psyam / AppData /本地/ Android / SDK / ndk捆绑/工具链/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/ ../../../../arm-linux-androideabi/lib/armv7-a/thumb -LC:/ Users / psyam / AppData / Local / Android / Sdk / ndk-bundle / platforms / android-23 / arch-arm / usr / lib --exclude-libs libgcc.a --exclude-libs libatomic.a --build-id --warn-shared-textrel --fatal-warnings --fix-cortex-a8 --exclude-libs libunwind.a- no-undefined -z noexecstack -z relro -z now --gc-sections -z nocopyreloc CMakeFiles / cmTC_6b09f.dir / CMakeCCompilerABI.c.o -lgcc -ldl -lc -lgcc -ldl“ C:/ Users / psyam / AppData / Local / Android / Sdk / ndk-bundle / platforms / android-23 / arch-arm / usr / lib /../ lib \ crtend_android.o”
在下面,我看到这些行
arg [--exclude-libs] ==>忽略
arg [libunwind.a] ==>忽略
所有这些链接器选项似乎都是在配置中默认设置的,而ld则忽略了这些参数。
如果有人有想法,请告诉我这些默认链接器选项的设置位置。同时请向我解释为什么链接程序会忽略这些选项。