热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

编译BatteryHistorian源码踩坑记录.

难顶啊,为什么做个事情就不能顺顺利利的完成呢?总有一些幺蛾子.可能有小伙伴就好奇了,明明我Docker已经整好了,为什么还弄自行编译的活呢?话接上篇.0.前言-Docker容器报

难顶啊,为什么做个事情就不能顺顺利利的完成呢?
总有一些幺蛾子.


可能有小伙伴就好奇了,
明明我Docker已经整好了,为什么还弄自行编译的活呢?
话接上篇.


0.前言-Docker容器报错.




1. 配置环境&下载源码.

官方教程
需要的准备工作;


  • JAVA,配置好环境变量.
  • Python 2.7,配置好环境变量.注意一定要是2.7
  • Go,配置好环境变量(GOROOT,GOPATH).

OK,准备好了以后,安装官方教程.


Next, download the Battery Historian code and its dependencies:
$ go get -d -u github.com/google/battery-historian/…


下载失败
还是太年轻,我特么就知道事情不可能这么顺利.

搜索引擎,关键字走起.
于是我找到了这个:
https://github.com/golang/lint/issues/288

Go下载包失败
很相似对不对,只不过别人是下载golint,我是下载battery-historian.
然后我看到了这个:
解决办法
在GOPATH路径下面创建 /src/golang.org/x 路径,然后直接使用git clone下载.
那么我可用直接魔改一下 官方的这个下载 battery-historian的命令,改成
git clone https://github.com/google/battery-historian
修改命令下载
我特么不禁要为我自己的机智点个赞.点赞




2.运行battery-historian

运行失败
参考这个解决办法:
找不到protobuf
科学上网,
尝试过clone github官方的源码,但是发现会卡住.
使用这篇博客内的国内托管的地址,很顺利下载完.
在GOROOT的路径内创建文件夹,放进去,
再次运行go run setup.go
安装setup.go内的代码,下载3个依赖.
继续报错
下载的closure-library 报错…
直接手动clone吧.
closure-library地址




3.运行battery-historian

go run cmd/battery-historian/battery-historian.go

很顺利的运行起来了,默认端口是 9999.
打开浏览器输入localhost:9999
看到熟悉的页面,
选择文件bugreport.zip
emmm…还是选择文件不了,没有submit按钮.
报错信息
全局搜索 historian-optimized.js 没有.
打开battery-historian的主目录,打开 setup.go
historian-optimized.js
发现这个文件是output出来的,地址是在 battery-historian\compiled内,
打开historian-optimized.js搜索报错的关键字,
发现代码是:

d3.scaleOrdinal().domain([0,1,2,3,4])

而不是

d3.scale.ordinal().domain([0,1,2,3,4])

找了下d3这个库,然后找到V3和V4版本的差异.
D3 V3 与V4的变化
d3
果然就是d3的问题, 也就是


setup.go生成的historian-optimized.js是v4版本的,但是执行打开端口运行的battery-historian.go的是v3版本.2个版本不一致导致.

但是怎么解决这个问题呢?
直到我找到这个pull记录.
pull记录
pull记录
很好奇的是不知道为什么我最新clone下来的设置的还是V4.
按照这个pull的改动,找到这个base.html
将里面的4.9.1 -> 3.5.17
重新运行setup.go生成historian-optimized.js文件,再重新运行battery-historian.go

上传图片,终于有submit按钮了.


这真有你的啊,Google!


推荐阅读
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • DSP中cmd文件的命令文件组成及其作用
    本文介绍了DSP中cmd文件的命令文件的组成和作用,包括链接器配置文件的存放链接器配置信息、命令文件的组成、MEMORY和SECTIONS两个伪指令的使用、CMD分配ROM和RAM空间的目的以及MEMORY指定芯片的ROM和RAM大小和划分区间的方法。同时强调了根据不同芯片进行修改的必要性,以适应不同芯片的存储用户程序的需求。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
author-avatar
亦惜缘2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有