在创建“.so”
文件的链接阶段,“ld”
链接器正在标记错误消息。
我尝试搜索它,但没有得到任何具体说明。该消息被标记为
“--trace”
链接器标志已启用。 “--trace”
转储链接步骤中使用的文件。平台为Windows
。
下面提到的是错误消息。链接过程中多次出现此消息。 任何线索将不胜感激。
错误:
arm-linux-androideabi/bin\ld: error: dummy.so: write: Function not implemented**
答案 0 :(得分:0)
最近也遇到了此问题,并且仅在Windows上进行调试构建时才会发生。我从来没有想过要使LD链接程序满意并解决错误的代码修补程序。
但是,我能够切换到使用LLD LLVM链接器,并使调试版本在Windows上再次运行。切换后,LLD链接器发现了一些LD似乎从未检测到的链接器错误。解决这些问题后,我得以再次成功构建。
要切换为使用LLD链接器,我在构建中添加了以下链接器标志:
-fuse-ld=lld
-Wl,--no-threads
LDK链接器已在NDK r18中提供,因此您需要使用合适的NDK进行构建,否则标记将无法识别。
我正在使用CMake,所以我只是在共享库的target_link_libraries声明的末尾添加了这些标志。
我添加了第二个标志“ -Wl,-no-threads”,以禁用多线程链接,这显然在Windows上可能是一个问题,并导致其挂起(有关更多信息,请参见https://github.com/android-ndk/ndk/wiki/Changelog-r19)。 / p>
如果您使用的是ndk-build,则默认情况下应该已禁用多线程链接(从NDK r19b开始)。
注意:我目前正在使用NDK r19c进行构建。最终,Android NDK默认会切换到LLD LLVM链接器(估计为r21)。