build chromium x86 release version

前言

测试编译后的chromium工程输出是否可以正常运行在其他未装开发环境的计算机上.
如果不能正常运行,采取什么措施?

实验

build chromium x86 release version
@ref https://www.chromium.org/developers/gn-build-configuration

chromium version : 68_0_3440_84
build env : vs2017最新版 + depot_tools

run cmd as administrator
z:
cd Z:\chromium\src
mkdir .\out\default_x86_r

在 .\out\default_x86_r\下建立args.gn文件

args.gn文件内容:

# @file Z:\chromium\src\out\default_x86_r\args.gn
# @brief build chromium x86 release version
# @ref  https://www.chromium.org/developers/gn-build-configuration
#       https://blog.csdn.net/Vincent95/article/details/78477822
# @note 
# cd Z:\chromium\src\
# gn --ide=vs args out\default_x86_r
# autoninja -C out\default_x86_r chrome
# 
# args.gn begin
#
target_cpu = "x86"
is_component_build = true

dcheck_always_on = true
enable_nacl = false

symbol_level = 0
is_debug = false
remove_webcore_debug_symbols = true
#
# args.gn end
#

产生工程文件和编译依赖环境
gn --ide=vs args out\default_x86_r

编译工程
autoninja -C out\default_x86_r chrome

整理拷贝工程输出, 准备可以运行的chrome版本文件(不只是exe和dll, 还需要其他文件,否则运行后,退出)
将default_x86_r, 拷贝为bin_chromium_release_x86, 删掉中间的临时文件(lib, obj), 其他不要删除(包括图片等)
可以运行的文件夹总size, 大约400MB左右. 
如果得到了可以在其他计算机上正常运行的发布版本,再尝试将这个文件夹中的没用的中间文件再删掉,
一步一步的缩小实验范围,最后得到一个体积最小的发布版本.

在实验用的win7x64上:
* 打开服务面板,将windows installer 和 windows Module installer 服务变成自动&&启动,重新启动计算机
* 安装vs2017的运行时库vs2017_vc_redist.x86.exe
* 将bin_chromium_release_x86拷贝过去运行, 运行chrome.exe, 运行正常。

经测试,可以在以下OS正常运行
* win10x64最新版
* win7x64
* win7x86 (没有装vs2017_vc_redist.x86.exe, 直接运行正常,可能和OS预装的软件有关系)

经测试,不可以在以下OS运行
* winxpsp3
* win2000serverSp4

debug版的编译设置 2018-09-16

# @file Z:\chromium\src\out\default_x86_r\args.gn
# @brief build chromium x86 release version
# @ref  https://www.chromium.org/developers/gn-build-configuration
#       https://blog.csdn.net/Vincent95/article/details/78477822
# @note 
# cd Z:\chromium\src\
# gn --ide=vs args out\default_x86_r
# autoninja -C out\default_x86_r chrome
# 
# 
# args.gn begin
#
target_os="win"
target_cpu = "x86"
is_component_build = false

dcheck_always_on = true
enable_nacl = false

symbol_level = 2
is_debug = true
is_win_fastlink = true
remove_webcore_debug_symbols = true

# proprietary_codecs 和 media_use_ffmpeg 不兼容, 只能定义一个
proprietary_codecs = true
# media_use_ffmpeg = true
rtc_initialize_ffmpeg = true
rtc_use_h264 = true
use_openh264 = true
ffmpeg_branding = "Chrome"
#
# args.gn end
#

编译好,要调试时,先单独运行程序,然后设置好断点,再附加调试具体的进程。
如果用IDE带着程序跑起来,下断点后,vs2017容易退出,根据断点位置的不同,有的断点位置必退出,无法调试了。

猜你喜欢

转载自blog.csdn.net/LostSpeed/article/details/82398970