cstsinghua
cstsinghua
麻烦问下,该问题,PAG研发工程师能抽空分析确认下吗?
这里的静态库是去年时候编译的,你当前本地采用的NDK里面的环境应该发生了很大变化了,这里应该需要NDK的环境保持一致。建议你先按照文档里面的说明或者v8的最新文档,重新编译出v8的Android静态库,然后替换掉工程里面的静态库,然后重新构建下工程试试。
编译的时候,下载V8源码的时候,里面会同时会自动下载NDK工具,应该是配套的。要用配套下载的NDK,NDK版本差异确实很可能引起编译失败,我们在编译FireFox的spidermonkey时也遇到类似问题,就是NDK版本要和要求的一致。不过,不太清楚你这里具体的问题是怎样的呢?我们当时在Ubuntu系统上编译的,没有在MAC上验证过,按理说步骤应该是差不多。
> 好像还真不能在mac上进行编译,最后我用ubuntu编译通过了 > 另外 我想问一下 你这个工程 是不是也只能在linux系统上编译 我在window上使用,会报错的 可以在windows下面运行的啊,之前我们就是在Ubuntu上编译,但是在windows下面构建工程和运行的。具体报错是什么原因呢?是不是Android studio里面插件或者CMake的版本等?可能需要看下具体报错信息,然后针对性分析解决
> 把编译错误贴上 > > Build command failed. > Error while executing process D:\Android\sdk\cmake\3.6.4111459\bin\cmake.exe with arguments {--build F:\V8Android-master\app.externalNativeBuild\cmake\debug\arm64-v8a --target native-lib} > [1/1] Linking CXX shared library ........\build\intermediates\cmake\debug\obj\arm64-v8a\libnative-lib.so > FAILED: cmd.exe /C...
> 个人在通过gclient sync (根据您这边提示target_os 为 android)会下载对应的android ndk > 但开始编译静态库报错 找不到 > 查找发现下载的ndk 为最新的ndk 20 的version,以为是下载时漏了文件,对比android studio 的ndk(也是20的)发现也没有存放 的include 目录 > 但在旧版 ndk(15)上找到了, 请问 这里是说明下载的ndk和编译环境不兼容么? > 如果是 如何才能下载到匹配编译环境的ndk呢? 1.你是用gclient命令同步下载下来的官方ndk编译吗?如果是的话,应该是可以的,但需要注意目前官方文档里面说明的Android编译支持的版本; 2.你这里是编译v8最新版本?v8的最新版本可能不一定在Android平台可用,比如说v8当前版本想x.2,那么可能Android上稳定版是x.1,这里可以先查询下官方当前支持的Android的最新稳定版是多少,然后去下载该版本并编译
另外,编译linux和Android平台的可运行二进制OK吗?官方的文档迁移https://v8.dev/docs/cross-compile-arm,编译Android平台的静态库,先确保编译Android平台的二进制可运行库在你的环境下是ok
> 抱歉,前面没有说编译环境:macOS 10.14.6 > 后面确实根据您说的提示下载了官方稳定的android版,编译仍然出现前面的features.h 头文件找不到的报错 > > 当前怀疑点:1 稳定版不一定就是macOS可编译的版本 > 2 编译文件缺少构建关联,需要配置什么(编译文件的引用策略之类) > > 这两天在macOS上用vmware安装了 linux Ubuntu 16.0.4 也使用ss翻墙(好不容易)发现在终端 git clone 时经常下载到某个百分比的时卡住不动了... 尝试了添加dns 到配置文件仍然无效果 > 请问您这边有遇到过类似情况或者有什么好的建议么 macOS上编译我没有验证过,按理说应该也支持,不过从官方文档来看,建议在Linux上(比如Ubuntu)编译。大致看了最近v8的文档,和去年其实变化并不大,只是把文档从GitHub页面独立出来到单独的网页了。 最新稳定版的话,从官方文档看,支持arm编译成二进制可运行文件,那自然也应该支持编译成arm平台的静态库。 v8编译的源文件确实非常庞大,要求有较好的网络带宽,关键是要可以翻墙的。我之前是在公司内部网络构建的,公司的VPN速度还是很给力的,所以下载v8源码和拉取相关配置的时候比较快。下载比较慢或者卡顿的问题,应该与你使用的VPN网络有关。之前我认识一位朋友,他们利用国外服务器(应该是购买,具体我忘记从哪里买的了)编译,速度更快,如果你有需要,可以咨询下他试试(可以加我微信号cstsinghua,我把他的号码推荐给你)。
> 现在arm64可以编译,但是arm 32位的总是编译不了 这里采用的编译环境和版本都是2018时的了,所以建议采用v8最新稳定版本 + MacOS或者 Ubuntu 最新稳定版本环境来构建。 最近一年我也没有继续搞v8相关领域了。不过我有个朋友还在这个方面继续深耕,方便的话,可以加下我的微信 cstsinghua ,我拉个群,你具体咨询下他,他那边应该有最新的构建版本。