热门标签 | 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!


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 任务,栈, ... [详细]
  • Linux环境下Git安装及常见问题解析
    本文详细介绍了在Ubuntu系统中安装Git的过程,包括环境检查、软件安装、用户配置以及SSH密钥生成等步骤,并针对安装过程中可能出现的问题提供了有效的解决方案。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • 随着EOS主网的成功启动,众多开发者和投资者对其给予了高度关注。本文旨在介绍如何构建EOS开发环境,包括所需的基本硬件配置、软件安装步骤以及常见问题的解决方案。 ... [详细]
  • 了解如何快速搭建属于自己的个人博客,无需编程基础,适合Mac和Windows用户。通过本文,您将学会使用GitHub Pages和Hexo构建一个完全自主的在线空间。 ... [详细]
  • 本文详细介绍了在使用EmguCV进行图像处理时常用的函数及其应用场景,旨在帮助开发者更好地理解和利用这些工具。 ... [详细]
  • Java Set集合源码深度解析
    本文将深入探讨Java集合框架中的Set接口及其主要实现类HashSet、LinkedHashSet和TreeSet的源码实现,帮助读者理解这些集合类的工作原理及应用场景。 ... [详细]
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社区 版权所有