首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用AndroidNDK15c __signbit编译visual studio错误上的android .so库

用AndroidNDK15c __signbit编译visual studio错误上的android .so库
EN

Stack Overflow用户
提问于 2018-03-20 19:43:13
回答 2查看 1.2K关注 0票数 1

我在visual 2017中使用了AndroidNDK13b,我得到了AndroidNDK15c的更新,这增加了一个错误。我也在使用新的Clang5.0(在3.8之前)。这是一个错误:

/usr/local/google/buildbot/src/android/ndk-r15-release/ndk/sources/android/support/src/stdio/vfprintf.c(242):错误:对“__signbit”的未定义引用

这是我详细的完整答复:

C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\llvm\prebuilt\windows-x86_64\bin clang版本5.0.300080 (基于LLVM 5.0.300080) 1>Target: i 686-none android 1>Thread模型: posix 1>InstalledDir: 1>Android 1>Found候选人GCC安装: C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\x86-4.9\prebuilt\windows-x86_64/lib/gcc/i686-linux-android\4.9.x 1>SelectedGCC安装: C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\x86-4.9\prebuilt\windows-x86_64/lib/gcc/i686-linux-android/4.9.x 1>Candidate multilib:;@m32 1>Selected multilib:.;@m32 "C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\x86-4.9\prebuilt\windows-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin\ld“"--sysroot=C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-23\arch-x86”--eh-frame-hdr -m elf_i386 -shared"C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-23\arch-x86/usr/lib\crtbegin_so.o“"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\5.0.300080\lib\linux\i386”"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\x86-4 -o "x86\Release\libPredictEngineMultiLang.so“.9\prebuilt\windows-x86_64/lib/gcc/i686-linux-android/4.9.x“"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\x86-4.9\prebuilt\windows-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/lib”"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-23\arch-x86/usr/lib“"-rpath-link=C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-23\arch-x86\usr\lib”"-rpath-link=C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-23\arch-x86\usr\lib“"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-23\arch-x86\usr\lib”"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\x86-4.9\prebuilt\windows-x86_64\lib\gcc\i686-linux-android\4.9.x“"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\sources\cxx-stl\llvm-libc++\libs\x86”"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\toolchains\x86-4.9\prebuilt\windows-x86_64\lib\gcc\i686-linux"-LC:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\sources\cxx-stl\llvm-libc++\libs\x86“--未定义的-z relro -z now -z noexecstack”x86\relro\CharsetEnginter.o“”x86\relro\CppSQLite3.o“”x86\relro\PhonemConverterEN.o“”x86\relro\PhonemConverterFR.o“”x86\relro\PhoneticeEngineEN.o“”x86\relro\PhoneEngineFR.o“”x86\relro\PhoneEngineFR.o“"x86\ Release\PrevolchEngineEngine.o“”x86\Release\PredicationEngineEN.o“”x86\Release\SearchEngineEngine.o“”x86\Release\SearchEngineEngine.o“”x86\Release\SearchEngineEngineFR.o“"x86\Release\sqlite3.o”"x86\Release\DictionaryEN.o“"x86\Release\DictionaryFR.o”"x86\Release\PhonemEN.o“"x86\Release\PhonemFR.o”“x86\Release\PredicedPreen.o”“x86\Release\Predemen.o”"C:\Users\hhenry-garon\Downloads\OpenSSL-for-Android-Prebuilt-master\OpenSSL-for-Android-Prebuilt-master\openssl-1.0.2\x86\lib\libcrypto.a“-landroid_support -lc++_static -lc++abi -landroid_support -lc++_static -lc++abi -llog -landroid -lgcc -ldl -lc -lgcc -ldl "C:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r15c\platforms\android-23\arch-x86/usr/1>/usr/local/google/buildbot/src/android/ndk-r15-release/ndk/sources/android/support/src/stdio/vfprintf.c(242):错误:对'__signbit‘1>clang.exe的未定义引用:1>clang.exe:链接器命令失败,退出代码1(使用-v查看调用)

我正在用x86编写一个安卓库.so,在VisualStudio2017上用Clang5.0编写。我只读到,也许我可以添加一个非stdio配置,但我不知道在什么地方做这个在2017年的视频工作室。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-21 19:35:59

在Visual 2017上,AndroidNDK15c存在问题。我使用的是LLVM静态,我更改了GNU静态,现在一切都正常了。

感谢微软(不是)

票数 0
EN

Stack Overflow用户

发布于 2018-11-16 09:11:48

对于其他遇到这种情况的人,我解决了这个问题,我将"m“添加到链接器标志中的"Library依赖项”中,看起来libc++对c#数学库有依赖关系。诸如printf、sprintf等函数使用的是__signbit。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49392881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档