Chrome 编译错误汇总
由于各种你懂的原因,訪问google的服务总是出错,先是hosts不工作。代理也不好使,最后最终能够短暂訪问了。我的版本号还是採用svn维护的,直接svn update也不行。试试git吧,一晚上才下载了120M,这得要猴年马月才干下完那。
找找tarball吧,TNND,尽然google删除了tarball!好在能够通过git的tgz方式变通的拿到tarball。一更新得到提示:ubuntu14.04不支持。算了,再整个30G的空间装个Ubuntu12.04吧,“尝尽了生活的苦。找不到能够相信的人”。
下了个dep_tool又不通了。一执行gclient报错:
gclient runhooks:
/.gclient: line 8: solutions: command not found
./.gclient: line 9: name: command not found
./.gclient: line 10: url: command not found
./.gclient: line 11: custom_deps: command not found
./.gclient: line 16: src/third_party/WebKit/LayoutTests:: No such file or directory
./.gclient: line 17: src/chrome_frame/tools/test/reference_build/chrome:: No such file or directory
./.gclient: line 18: src/chrome/tools/test/reference_build/chrome_mac:: No such file or directory
./.gclient: line 19: src/chrome/tools/test/reference_build/chrome_win:: No such file or directory
./.gclient: line 20: src/chrome/tools/test/reference_build/chrome_linux:: No such file or directory
./.gclient: line 22: syntax error near unexpected token `}'
./.gclient: line 22: ` }'
算了,那就不更新吧,直接在老版本号上build吧:
./build/install-build-deps.sh
提示我64位的kernel编译32位的代码不再获得推荐:
We no longer recommend that you use this script to install
32bit libraries on a 64bit system. Instead, consider using
the install-chroot.sh script to help you set up a 32bit
environment for building and testing 32bit versions of Chrome.
If you nonetheless want to try installing 32bit libraries
directly, you can do so by explicitly passing the --lib32
option to install-build-deps.sh.
Exiting without installing any 32bit libraries.
逗我玩呢。劝我改用install-chroot.sh?
./build/install-chroot.sh
The following targets are available to be installed in a chroot:
1: breezy
2: dapper
3: edgy
26: stable
27: testing
28: trusty
29: unstable
30: utopic
31: vivid
32: warty
33: wheezy
34: woody
You are running a 64bit kernel. This allows you to install either a
32bit or a 64bit chroot environment. Which one do you want (32, 64) 32
I: Retrieving Release
W: Cannot check Release signature; keyring file not available /usr/share/keyrings/debian-archive-keyring.gpg
I: Retrieving Packages
算了,还是取消用这个编译吧:加上--lib32
./build/install-build-deps.sh --lib32
build/gyp_chromium -Dflag1=value1 -Dflag2=value2
然后编译:make chrome -j4
出错了:
net/base/x509_certificate_nss.cc: In function ‘void net::{anonymous}::ParsePrincipal(CERTName*, net::CertPrincipal*)’:
net/base/x509_certificate_nss.cc:75:46: error: invalid conversion from ‘char* (*)(const CERTName*) {aka char* (*)(const CERTNameStr*)}’ to ‘CERTGetNameFunc {aka char* (*)(CERTNameStr*)}’ [-fpermissive]
改之:
// Get CN, L, S, and C.
#if Michael_Chromium_Patch
CERTGetNameFunc get_name_funcs[4] = {
(char*(*)(CERTNameStr*))CERT_GetCommonName, (char*(*)(CERTNameStr*))CERT_GetLocalityName,
(char*(*)(CERTNameStr*))CERT_GetStateName, (char*(*)(CERTNameStr*))CERT_GetCountryName };
#else
CERTGetNameFunc get_name_funcs[4] = {
CERT_GetCommonName, CERT_GetLocalityName,
CERT_GetStateName, CERT_GetCountryName };
#endif
make chrome -j
AR(target) out/Debug/obj.target/third_party/WebKit/Source/WebKit/chromium/libwebkit.a
COPY out/Debug/chrome-wrapper
ACTION Generating manpage out/Debug/chrome.1
COPY out/Debug/xdg-mime
COPY out/Debug/xdg-settings
COPY out/Debug/product_logo_48.png
CXX(target) out/Debug/obj.target/chrome/chrome/app/chrome_main.o
CXX(target) out/Debug/obj.target/chrome/chrome/app/chrome_exe_main_gtk.o
CXX(target) out/Debug/obj.target/chrome/chrome/app/chrome_main_delegate.o
LINK(target) out/Debug/chrome
^[ LINK(target) out/Debug/chrome: Finished
谢天谢地,最终过了!
cd out/Debug and run chrome
My god! crash :(
[2560:2560:1091621926:FATAL:field_trial.cc(183)] Check failed: next_group_number_ > kDefaultGroupNumber + 1 (1 vs. 1)
Backtrace:
base::debug::StackTrace::StackTrace() [0x55555743f072]
logging::LogMessage::~LogMessage() [0x555557469635]
base::FieldTrial::SetForced() [0x55555742d1b2]
VariationsService::CreateTrialFromStudy() [0x55555713a558]
VariationsService::CreateTrialsFromSeed() [0x555557138e28]
ChromeBrowserMainParts::SetupMetricsAndFieldTrials() [0x5555570da3bd]
ChromeBrowserMainParts::PreCreateThreadsImpl() [0x5555570ddf1a]
ChromeBrowserMainParts::PreCreateThreads() [0x5555570dcfea]
content::BrowserMainLoop::CreateThreads() [0x555559b7c890]
(anonymous namespace)::BrowserMainRunnerImpl::Initialize() [0x555559b7e97f]
BrowserMain() [0x555559b7b34b]
content::RunNamedProcessTypeMain() [0x5555573aff00]
content::ContentMainRunnerImpl::Run() [0x5555573b0b74]
content::ContentMain() [0x5555573af573]
ChromeMain [0x55555668447d]
main [0x55555668443c]
0x7ffff203f76d
0x555556684349
调试一下吧:
gdb chrome and show call stack:
[32321:32321:43801153618:WARNING:zygote_host_impl_linux.cc(165)] Running without the SUID sandbox! See http://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[32347:32347:43817254895:INFO:gl_context_glx.cc(135)] Offscreen context was direct.
Segmentation fault (core dumped)
- // This will be called after the command-line has been mutated by about:flags
- void ChromeBrowserMainParts::SetupMetricsAndFieldTrials() {
- MetricsService* metrics = browser_process_->metrics_service();
- if (IsMetricsReportingEnabled())
- metrics->ForceClientIdCreation(); // Needed below.
- field_trial_list_.reset(
- new base::FieldTrialList(metrics->GetEntropySource()));
- // Ensure any field trials specified on the command line are initialized.
- // Also stop the metrics service so that we don't pollute UMA.
- #ifndef NDEBUG
- const CommandLine* command_line = CommandLine::ForCurrentProcess();
- if (command_line->HasSwitch(switches::kForceFieldTrials)) {
- std::string persistent = command_line->GetSwitchValueASCII(
- switches::kForceFieldTrials);
- bool ret = base::FieldTrialList::CreateTrialsFromString(persistent);
- CHECK(ret) << "Invalid --" << switches::kForceFieldTrials <<
- " list specified.";
- }
- #endif // NDEBUG
- VariationsService* variations_service =
- browser_process_->variations_service();
- variations_service->CreateTrialsFromSeed(browser_process_->local_state());
- }
- void BrowserProcessImpl::CreateLocalState() {
- DCHECK(!created_local_state_ && local_state_.get() == NULL);
- created_local_state_ = true;
- FilePath local_state_path;
- PathService::Get(chrome::FILE_LOCAL_STATE, &local_state_path);
- local_state_.reset(
- PrefService::CreatePrefService(local_state_path, policy_service(), NULL,
- false));
- // Initialize the prefs of the local state.
- browser::RegisterLocalState(local_state_.get());
- }
- // TODO(brettw): this function does not handle long paths (filename > MAX_PATH)
- // characters). This isn't supported very well by Windows right now, so it is
- // moot, but we should keep this in mind for the future.
- // static
- bool PathService::Get(int key, FilePath* result) {
- // special case the current directory because it can never be cached
- if (key == base::DIR_CURRENT)
- return file_util::GetCurrentDirectory(result);
- if (GetFromCache(key, result))
- return true;
- AddToCache(key, path);
- *result = path;
- return true;
- }
坏蛋最终现身了。注意看路径path_:
p *result
$60 = {static kSeparators = 0x55555ad404c0 "/", static kCurrentDirectory = <same as static member of an already seen type>,
static kParentDirectory = <same as static member of an already seen type>, static kExtensionSeparator = 46 '.', path_ =
"/home/michael/.config/chromium/Local State"}
(gdb)
删除这个Local State,chrome就跑起来了,原因就是第一次run起来chrome后,我点击了“是否恢复上次的网页”的是button,导致本地状态解析出错。请看此文件末端的一堆seed数据(它就是老鼠):
Local State:
"uninstall_metrics": {
"installation_date2": "1426134422",
"launch_count": "2"
},
"user_experience_metrics": {
"low_entropy_source": 2024,
"session_id": 1,
"stability": {
"breakpad_registration_fail": 2,
"breakpad_registration_ok": 0,
"crash_count": 1,
"debugger_not_present": 2,
"debugger_present": 0,
"exited_cleanly": false,
"incomplete_session_end_count": 0,
"last_timestamp_sec": "0",
"launch_count": 2,
"launch_time_sec": "1426138598",
"page_load_count": 0,
"renderer_crash_count": 0,
"renderer_hang_count": 0,
"session_end_completed": true,
"stats_buildtime": "1426159202",
"stats_version": "21.0.1167.0-64-devel"
}
},
"variations_seed": "CigxMTZhNmMwMTN1Z2dlc3RVbmlmaWNhdGlvbl9BNV9TdGFibGUQARj/k8oBIP......
Chrome 编译错误汇总的更多相关文章
- openbmc编译错误汇总,持续更新,建议收藏
本文汇总自己在编译openbmc时遇到的一些问题及解决思路,希望对有兴趣研究openbmc的同学有一些帮助. 项目地址:https://github.com/openbmc/openbmc 编译步骤: ...
- php各种编译错误汇总
PHP编译安装时常见错误解决办法,php编译常见错误 This article is post on https://coderwall.com/p/ggmpfa configure: error: ...
- flash/flex 编译错误汇总
来源:http://blog.chinaunix.net/uid-366408-id-116463.html 代码 消息 说明 1000 对 %s 的引用不明确. 引用可能指向多项.例如,下面使用 ...
- iOS 各种编译错误汇总
1.error: macro names must be identifiers YourProject_prefix.pch 原因: 因为你弄脏了预处理器宏,在它处于<Multiple Val ...
- Android:JACK编译错误汇总及解决
jack server交互命令: jack-admin start-server jack-admin kill-server jack-admin list-server jack-admin un ...
- C++ 中的导致编译错误汇总
多少年来,各路英雄好汉,八方神犇大佬,在CE中饮恨退役. OI的CE,还是那样熟悉的味道. (博主只能想到这么多,欢迎大家来补充) 1.变量名和内置函数冲突?!?! C++内置函数很多很多,许多你不知 ...
- Android入门级编译错误汇总
1 描写叙述: 项目常常须要引用别人的libraryproject,在选项中add进来后,点击应用或者确定.关闭页面. 回到代码中却发现无法链接,又一次打开properties查看,发现导入的pr ...
- MDK5 STM32编译问题汇总
MDK5 STM32编译问题汇总 WIN8.KEIL-MDK-5 编译时,出现弹窗"The ARM C/C++ Compiler 已停止工作",关闭弹窗后,编译输出的窗口中出现如下 ...
- Entity Framework学习笔记——错误汇总
之前的小项目做完了,到了总结经验和更新学习笔记的时间了.开始正题之前先啰嗦一下,对之前的学习目标进行一个调整:“根据代码生成表”与“生成数据库脚本和变更脚本”合并为“Code First模式日常使用篇 ...
随机推荐
- 命令行编译工具NMAKE
简介 大家已经习惯于微软提供的功能强大的IDE,已经很少考虑手动编连项目了,所谓技多不压身,有空的时候还是随我一块了解一下命令行编译. C/C++/VC++程序员或有Unix/Linux编程经验应该很 ...
- UITextView in iOS7 doesn't scroll
UITextView in iOS7 has been really weird. As you type and are entering the last line of your UITextV ...
- __super
__super::member_function(); The __super keyword allows you to explicitly state that you are calling ...
- 《软件开发与创新:ThoughtWorks文集:续集》
<软件开发与创新:ThoughtWorks文集:续集> 基本信息 原书名:The thoughtWorks anthology, volume 2:More essays on softw ...
- easyui 排序实现
1.对easyui datagrid 返回的数据,进行排序处理,便于搜索到我们的有用的信息. 例如: 2.datagrid 需要设置 sortable : true { field : 'crtTi ...
- 【BZOJ】【2242】【SDOI2011】计算器
快速幂/扩展欧几里得/BSGS 经典好例题!! 三个问题三种算法…… 算法:白书(算法竞赛入门经典——训练指南)全有…… /************************************** ...
- TreeMap源代码深入剖析
第1部分 TreeMap介绍 A Red-Black tree based NavigableMap implementation. The map is sorted according to th ...
- Android -- 触摸Area对焦区域(更新)
老早就想找关于不同点击不同地方的对焦,但是一直没有找到,现在项目又需要这个功能,又跑出来找找,最后还是找到啦~~关于对焦更多的是关于自动对焦. 废话不多说,直接来干货,主要是setFocusAreas ...
- CKEditor && CKFinder 配置
准备 ...
- System.Windows.Forms.ListView : Control
#region 程序集 System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 ...