Step 3 去除v8依赖

用文本编辑器打开pdfium根目录下的pdfium.gyp文件,找到'javascript'及'jsapi'依赖(47行左右):

      'dependencies': [
'safemath',
'fdrm',
'fpdfdoc',
'fpdfapi',
'fpdftext',
'formfiller',
'fxcodec',
'fxcrt',
'fxedit',
'fxge',
'javascript',
'jsapi',
'pdfwindow',
],

将其移除并删除对应的工程(734行至812行):

    {
'target_name': 'javascript',
'type': 'static_library',
'include_dirs': [
'<(DEPTH)/v8',
'<(DEPTH)/v8/include',
],
'dependencies': [
'<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
'<(DEPTH)/v8/tools/gyp/v8.gyp:v8_libplatform',
],
'export_dependent_settings': [
'<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
],
'ldflags': [ '-L<(PRODUCT_DIR)',],
'sources': [
'fpdfsdk/include/javascript/app.h',
'fpdfsdk/include/javascript/color.h',
'fpdfsdk/include/javascript/console.h',
'fpdfsdk/include/javascript/Consts.h',
'fpdfsdk/include/javascript/Document.h',
'fpdfsdk/include/javascript/event.h',
'fpdfsdk/include/javascript/Field.h',
'fpdfsdk/include/javascript/global.h',
'fpdfsdk/include/javascript/Icon.h',
'fpdfsdk/include/javascript/IJavaScript.h',
'fpdfsdk/include/javascript/JavaScript.h',
'fpdfsdk/include/javascript/JS_Console.h',
'fpdfsdk/include/javascript/JS_Context.h',
'fpdfsdk/include/javascript/JS_Define.h',
'fpdfsdk/include/javascript/JS_EventHandler.h',
'fpdfsdk/include/javascript/JS_GlobalData.h',
'fpdfsdk/include/javascript/JS_Module.h',
'fpdfsdk/include/javascript/JS_Object.h',
'fpdfsdk/include/javascript/JS_Runtime.h',
'fpdfsdk/include/javascript/JS_Value.h',
'fpdfsdk/include/javascript/PublicMethods.h',
'fpdfsdk/include/javascript/report.h',
'fpdfsdk/include/javascript/resource.h',
'fpdfsdk/include/javascript/util.h',
'fpdfsdk/src/javascript/app.cpp',
'fpdfsdk/src/javascript/color.cpp',
'fpdfsdk/src/javascript/console.cpp',
'fpdfsdk/src/javascript/Consts.cpp',
'fpdfsdk/src/javascript/Document.cpp',
'fpdfsdk/src/javascript/event.cpp',
'fpdfsdk/src/javascript/Field.cpp',
'fpdfsdk/src/javascript/global.cpp',
'fpdfsdk/src/javascript/Icon.cpp',
'fpdfsdk/src/javascript/JS_Context.cpp',
'fpdfsdk/src/javascript/JS_EventHandler.cpp',
'fpdfsdk/src/javascript/JS_GlobalData.cpp',
'fpdfsdk/src/javascript/JS_Object.cpp',
'fpdfsdk/src/javascript/JS_Runtime.cpp',
'fpdfsdk/src/javascript/JS_Value.cpp',
'fpdfsdk/src/javascript/PublicMethods.cpp',
'fpdfsdk/src/javascript/report.cpp',
'fpdfsdk/src/javascript/util.cpp',
],
},
{
'target_name': 'jsapi',
'type': 'static_library',
'dependencies': [
'<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
],
'export_dependent_settings': [
'<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
],
'include_dirs': [
'<(DEPTH)/v8',
'<(DEPTH)/v8/include',
],
'ldflags': [ '-L<(PRODUCT_DIR)',],
'sources': [
'fpdfsdk/include/jsapi/fxjs_v8.h',
'fpdfsdk/src/jsapi/fxjs_v8.cpp',
],
},

'javascript'是将pdf js规定的对象嵌入到js引擎中,使得PDF引擎使用的js引擎是标准js的超集。

'jsapi'则是导入v8的接口

如果是在windows平台下编译,到这里就可以直接使用gyp生成vs工程了。如果是linux平台的还需要进一步移除源码中对js的引用,均位于

fpdfsdk/src/fsdk_mgr.cpp

文件中。

  • 注释掉第11行的头文件应用
//#include "../include/javascript/IJavaScript.h"
  • 注释掉215行GetJSRuntimeFactory()函数及其引用(235-238)
CJS_RuntimeFactory* GetJSRuntimeFactory()
{
static CJS_RuntimeFactory s_JSRuntimeFactory;
return &s_JSRuntimeFactory;
} m_pJSRuntimeFactory = NULL;
m_pJSRuntimeFactory = GetJSRuntimeFactory();
m_pJSRuntimeFactory->AddRef();
  • 置CPDFDoc_Environment::GetJSRuntime()函数返回NULL
IFXJS_Runtime* CPDFDoc_Environment::GetJSRuntime()
{
/*if(!IsJSInitiated())
return NULL;
assert(m_pJSRuntimeFactory);
if(!m_pJSRuntime)
m_pJSRuntime = m_pJSRuntimeFactory->NewJSRuntime(this);
return m_pJSRuntime;*/
return NULL;
}

OK,前置任务完成!进入编译。

https://zhuanlan.zhihu.com/p/37729756

pdfium舍弃v8依赖的更多相关文章

  1. pdfium去掉v8支持

    GYP_DEFINES='pdf_enable_v8=0 pdf_enable_xfa=0' build/gyp_pdfium 未测试  ???????????

  2. linux中安装mysql数据库

    遇到ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' ...

  3. centos7配置mysql

    一:mysql安装方法一:yum安装 下载并安装MySQL官方的 Yum Repository https://dev.mysql.com/ cd ~ wget -i -c https://dev.m ...

  4. 原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较

    一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优 ...

  5. CentOS7安装MySQL8.0小计

    之前讲配置文件和权限的时候有很多MySQL8的知识,有同志说安装不太一样,希望发个文,我这边简单演示一下 1.环境安装 下载MySQL提供的CentOS7的yum源 官方文档:<https:// ...

  6. CentOS7系统yum方式安装MySQL5.7

    参考:https://www.cnblogs.com/bigbrotherer/p/7241845.html#top 1.在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要, ...

  7. 阿里云MySQL安装到centos,并链接。

    Last login: Wed Jan 22 11:21:17 on ttys001 wulaguixiaomianyangdeMacBook-Pro:~ xingwen$ ssh root@47.9 ...

  8. v8/src/compilation-statistics.cc pdfium编译

    v8/src/compilation-statistics.cc:18:3: 警告:‘auto’ changes meaning in C++11; please remove it [-Wc++0x ...

  9. Chrome V8引擎系列随笔 (1):Math.Random()函数概览

    先让大家来看一幅图,这幅图是V8引擎4.7版本和4.9版本Math.Random()函数的值的分布图,我可以这么理解 .从下图中,也许你会认为这是个二维码?其实这幅图告诉我们一个道理,第二张图的点的分 ...

随机推荐

  1. aiomysql

    aiomysql: import aiomysql import asyncio async def aiomysql_test(): loop = asyncio.get_event_loop() ...

  2. 用Python写Verilog(非HLS)

    https://blog.csdn.net/qq_32010099/article/details/81197171 前段时间玩Python的时候好奇, 既然Python这么强大, 那么能不能用Pyt ...

  3. appium--python启动appium服务

    前戏 前面我们都是在cmd下通过输入appium加端口号来启动服务的,在我们做自动化的时候,我们当然不希望我们手动启动appium服务,而是希望通过脚本自动启动appium服务. 我们可以使用subp ...

  4. Xshell删除键不好使:删除显示退格^H

    Xshell删除键不好使:删除显示退格^H 1.问题: Xshell不能删除,删除时出现 退格^H 2.解决方案: 点击上方:文件→属性→终端→键盘,把 delete 和 backspace 序列改为 ...

  5. mysql不是内部或外部命令--windows环境下报错的解决

    安装Mysql后,当我们在cmd中敲入mysql时会出现‘Mysql’不是内部或外部命令,也不是可运行的程序或其处理文件. 处理: 我的电脑右键属性>高级系统设置>高级>环境变量&g ...

  6. 物联网架构成长之路(41)-直播流媒体入门(RTSP篇)

    1. 搭建RTSP服务 首先现在音视频利器 ffmpeg,这个到http://www.ffmpeg.org/download.html 这里下载压缩包即可. 文档参考:http://trac.ffmp ...

  7. mysql sql语句摘录

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

  8. not in和not exists区别

    如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引: 而not extsts 的子查询依然能用到表上的索引. 所以无论那个表大,用not exists都比not in要快. 也就是 ...

  9. 如何配置jdk的本地环境

    在计算机→属性→高级系统设置→高级→环境变量,如图: 第一步:系统变量→新建 JAVA_HOME 变量 . 变量值填写jdk的安装目录(本人是C:\Program Files\Java\jdk1.8. ...

  10. background-size:100% 100% 和 background-size:cover的区别简述

    下面我通过给下图背景图添加background-size属性的不同属性值,更直观的显示出100%和cover的区别   下图是添加background-size:100% 100% 后的背景图效果,背 ...