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模式日常使用篇 ...
随机推荐
- Ext表单提示方式:msgTarget
Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = 'side'; Ext表单提示方式:msgTarget:有4中方式:qtip,t ...
- CMMI管理体系
帮助企业对软件工程过程进行管理和改进,增强开发与改进能力,从而按时,不超过预算地开发软件. CMMI为改进一个组织的各种过程提供了一个单一的集成化框架,新的集成模块框架消除了各个模型的不一致性,减少了 ...
- 如何设置eclipse不同的workspace共享配置
在很多的项目中,每个项目使用一个workspace,结果每新建一个workspace重新配置一下,但是配置的东西都是一样的,烦死了,有什么好办法可以共享一下配置呢? 总结一下,复制工作空间配置步骤如下 ...
- restful处理
重写/覆盖 HTTP 方法 一些HTTP客户端仅能处理简单的的GET和POST请求,为照顾这些功能有限的客户端,API需要一种方式来重写HTTP方法. 尽管没有一些硬性标准来做这事,但流行的惯例是 ...
- unity3d-地图制作之光照贴图Lightmapping
今天无聊随便翻看了暗黑战神的场景资源,发现了一个以前没怎么注意的静态场景优化问题. 什么是静态场景,也就是说这个场景是不会变化.比如MMO游戏中选择人物的场景. 就拿默认的暗黑战神的选择人物场景来看, ...
- 数据结构及算法篇bsearch crypt lfind lsearch qsort rand srand
crypt(将密码或数据编码) 相关函数 getpass 表头文件 #define _XOPEN_SOURCE #include<unistd.h> 定义函数 char * crypt ( ...
- 【BZOJ】【3170】【TJOI2103】松鼠聚会
切比雪夫距离+曼哈顿距离 题解:http://www.cnblogs.com/zyfzyf/p/4105456.html 其实应该先做这题再做[BZOJ][3210]花神的浇花集会的吧…… 我们发现d ...
- 混沌数学之ASin模型
相关软件:混沌数学之离散点集图形DEMO 相关代码: class ASinEquation : public DiscreteEquation { public: ASinEquation() { m ...
- 即时通讯之smack客户端配置
之前学习了通过Openfire+spark+smack的模式来完成我们的即时通讯软件,上次我们已经完成了Openfire的安装和配置,这次我们继续完成我们的客户端部分. 1.首先我们通过百度smack ...
- Nginx配置文件(nginx.conf)配置具体解释
欢迎扫码增加Java高知群交流 Nginx的配置文件nginx.conf配置具体解释例如以下: user nginx nginx ; Nginx用户及组:用户 组. window下不指定 wo ...