美文网首页
再战 Pdfium.so : 多线程、直接使用 Visual S

再战 Pdfium.so : 多线程、直接使用 Visual S

作者: 天下第九九八十一 | 来源:发表于2020-11-05 18:24 被阅读0次

make -j 选项可以启用并行编译。make -j3 all 指令开启三股线程,命令行刷刷地跑。一次“新鲜”的编译耗时5分15秒,临时空间仅占32MB。

NDK 路线很成熟,但手写 makefile 的方式改代码太不方便。于是尝试直接使用 Visual Studio 交叉编译 pdfium.so 。

之前提过的 Libjpeg-turbo-VS 项目里面正好有交叉编译的子项目。不过缺少相关组件,无法加载,提示说:需安装 Mobile development with c++。

在 VS 中点击 Tools -> Get Tools and Features,可以看到 Mobile development with c++ 组合,选择后,安装空间竟然需要8GB。其实只需下载两兆字节的 C++ Android development tools 就可以了。

安装完毕后,可以加载项目了。需要在设置中填写一些路径变量:

这个时候再编译,大概率还是会出错。我遇到的错误是:找不到 -landroid_supportcrtend_so.ocrtbegin_so.o。其实新版本NDK已经用不到一些库链接。而下载的两兆字节的 C++ Android 支持其实是个插件,这个插件定义了一些宏,用不到的库链接写死在里面,所以链接会出错。这个时候,要需要修改项目的 linker -> input,删除插件用到的宏$(StlLibraryName)等,自己添加诸如c++_static;m;log之类的库链接。

VS交叉编译项目搭建成功后,看上去就像普通的win32项目,可以查看定义等。虽然全局搜索没有 AndroidStudio 来的方便,但是不会动辄索引,占用很多C盘空间。

开启多线程编译后,VS比 make -j3 更快,少用一分钟左右。

相关文章

网友评论

      本文标题:再战 Pdfium.so : 多线程、直接使用 Visual S

      本文链接:https://www.haomeiwen.com/subject/paugvktx.html