ninja

Android中的Android.bp、Blueprint 和Soong简介

跟風遠走 提交于 2020-07-28 09:22:56
前言: 随着android工程越来越大,包含的module越来越多,以makefile组织的项目编译花费的时间越来越多。谷歌在7.0开始引入了ninja进行编译系统的组织。相对于make来说Ninja 在大的项目管理中速度和并行方面有突出的优势,因此谷歌采用了Ninja 来取代之前使用的make。 Android 7.0 之后再很多地方出现了Android.bp的文件,也不清楚这个后缀是什么意思,本文主要是介绍其由来和简单的语法和其使用方法,以及与其相关的Blueprint 和Soong。 Blueprint 和Soong Android 7.0之后希望用Android.bp替换Android.mk,bp简单的配置更方便Ninja 文件的产生,而Blueprint和Soong 就此产生。 Android 利用Blueprint和Soong 来解析bp 文件,经过最终转换为ninja files。 Blueprint和Soong都是由Golang写的项目。 从Android Nougat开始,prebuilts/go/ 目录下新增了Golang所需的运行环境,在编译时使用。 Android.bp以及相关支持,从Android Nougat开始加入,从Android Oreo(8.0)开始默认开启。 如果需要在Android Nougat的版本使用,需要在执行编译时添加变量。 make

clickhouse交叉编译(编译机器x86,目标平台ARM64),clang: error: invalid linker name in argument '-fuse-ld=lld'

大城市里の小女人 提交于 2020-07-26 15:26:47
-- The C compiler identification is Clang 8.0.1 -- The CXX compiler identification is Clang 8.0.1 -- Check for working C compiler: /usr/bin/clang-8 -- Check for working C compiler: /usr/bin/clang-8 -- broken CMake Error at /usr/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52 (message): The C compiler "/usr/bin/clang-8" is not able to compile a simple test program. It fails with the following output: Change Dir: /root/ClickHouse/build-arm64/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/ninja" "cmTC_3f054" [1/2] Building C object CMakeFiles/cmTC_3f054.dir/testCCompiler.c.o [2/2] Linking C

javascript能做什么 和其简单的内容

拜拜、爱过 提交于 2020-05-07 19:32:35
javascript能做什么 网页三大结构: html------>结构 搭建网页结构 css------->样式 美化页面 javascript-->行为 网页面向用户 用户跟网页有交互,可以让网页动起来 1. 常见的网页效果【表单验证,轮播图。。。】 2. 与H5配合实现游戏【水果忍者: http://www.jq22.com/demo/html5-fruit-ninja/】 3. 实现应用级别的程序【http://naotu.baidu.com】 4. 实现统计效果【http://echarts.baidu.com/examples/】 5. 地理定位等功能【http://lbsyun.baidu.com/jsdemo.htm#i4_5】 6. 在线学编程【https://codecombat.163.com/play/】 7. js可以实现人工智能【面部识别】 8. 。。。 js组成 EcmaScript 基础语法 第一周学习 前期主要学习es5 后续学习es6 BOM 浏览器对象模型 浏览器相关 DOM 文档对象模型 操作html/css js能如何在html中使用 1,新增script标签,在script标签内容中写js(内部引入 类比css内部样式表) <script type="text/javascript"> alert("hello

Windows编译OpenBLAS

Deadly 提交于 2020-05-04 09:39:42
在尝试用 LazyNet 时,由于原作者提供的OpenCV和OpenBLAS版本和我的环境不一样,考虑自行配置依赖。 OpenCV源码编译的文章很多,这里主要说一下OpenBLAS的编译。 cblas_sgemm crash 基于VS2017的MSVC编译器,编译安装openblas develop分支最新版,发现 LazyNet 代码有crash(access violation),而在Linux(ubuntu16.04,G++/Clang++-8)则运行正常。剥离出来的复现问题的最小化代码见下方,解决办法是 用clang-cl(Windows下和MSVC兼容的clang编译器)重新编译OpenBLAS , 讨论帖在此 。 #include <stdio.h> extern "C" { #include <cblas.h> } int main() { printf("OpenBLAS config info:\n%s\n", openblas_get_config()); #if 1 // will cause crash on VS2017 x64 with OpenBLAS latest const int M = 16; const int N = 676; const int K = 27; #else // won't crash const int M = 4;

Ninja使用Visual Studio(cl.exe)构建

為{幸葍}努か 提交于 2020-05-02 06:36:54
[TOC] Ninja基本步骤 Ninja的作用是加速构建,最初目的是替代make,现在Windows系统上也可以用,也就是用Ninja替代nmake或者MSBuild来生成target。 本人不做Chromium等大型程序构建,jenkins也没怎么用过。平时接触到用Ninja的地方只有一个:android ndk开发时,编一个arm android console application可执行程序时(或者编库)时用到。当然,这个可以丢给自动构建。 这次在caffe-builder的脚本中看到willyd调用的是Ninja,换成Visual Studio会提示报错,“和先前的Ninja不一致”。VS是集成开发环境,它的编译器是cl.exe。 网络上搜到的用cl.exe编译、用Ninja构建的例子,是Windows下编译clang源码中的 官方步骤 中给出的: 没错,只需要这几个步骤: 进入cmd,并且正确的设定需要用到的编译器(VS)环境,例如vs2015的就用vs2015的,以及注意x64还是x86等 确保CMakeLists.txt存在,编写正确 到build目录去调用cmake,指定generator为Ninja Ninja xxx Ninja在VS2015下的问题和解决 基于上述步骤,尝试了VS2017下的调用: cd /d d:/toy/rr call "C:

基于开源PDFium,编译动态库--Windows平台(上)

泪湿孤枕 提交于 2020-04-28 07:23:17
开篇注:博客是为了更好的思考,希望能以此记录自己的学习历程。本文写于2018年09月11日,修改于2018年09月12日。随着时间流逝,可能有些内容已经失效,望读者望文观义,get到关键点。假如对文中有啥有疑问、有想法、感觉不太对的地方欢迎留言交流~。 引言 因为用到过别人编译的PDFium.dll,但是有点问题,于是官方方式编译一下PDFium库。这里只说Windows平台的编译。 开始 1、访问外网 PDFium源码托管在 https://pdfium.googlesource.com/pdfium/ 。 所以先得有个访问谷歌的工具吧。这个得自己找。 2、获取depot工具 关于depot工具,就知道它是个编译工具就好,如同vistual studio一样,知道怎么用,什么效果即。如官方介绍, http://www.chromium.org/developers/how-tos/install-depot-tools 这里有关于depot工具的 介绍。别忘了将depot工具添加到环境变量中,这样我们可以很方便的在cmd中使用它。 3、准备好合适版本Vistaul Studio及相关环境 正如官方所说: As of September, 2017 (R503915) Chromium requires Visual Studio 2017 (15.7.2) to build.

Windows + VS2017 编译Skia

耗尽温柔 提交于 2020-04-28 06:43:42
Windows + VS2017 编译Skia SKIA 2019年03月28日 17时42分08秒 官方网址 https://skia.org/ 官方编译教程 https://skia.org/user/build 准备工具 Python 2.7.16 如果安装了python 3,要把python2 的优先级设置的高一点 VS2017 安装 git 工具 下载源代码 首先设置以下git 的代理,设置方法如下 先查询下自己的梯子端口,我用的蓝灯如下 git config --global http.proxy socks5://127.0.0.1:61901 git config --global https.proxy socks5://127.0.0.1:61901 下载depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 设置完代理再下载速度噌噌的 * 下载完设置环境变量 下载 Skia源码 git clone https://skia.googlesource.com/skia.git 下载ninja git clone git://github.com/ninja-build/ninja.git && cd ninja 打开 适用于 VS 2017 的

1.编译cartographer ROS

孤街浪徒 提交于 2020-04-25 18:37:01
1.系统要求 cartographer ROS与Cartographer要求一样,即 64-bit, modern CPU (e.g. 3rd generation i7) 16 GB RAM Ubuntu 14.04 (Trusty) and 16.04 (Xenial) gcc version 4.8.4 and 5.4.0 支持的ROS版本: Indigo Kinetic Lunar Melodic 编译并安装 为了编译Cartographer ROS,推荐使用 wstool 和 rosdep 。为了更快得编译,建议使用 Ninja 。 sudo apt- get update sudo apt - get install -y python-wstool python-rosdep ninja-build 在catkin_ws中创建一个新的cartographer_ros工作空间。 mkdir catkin_ws cd catkin_ws wstool init src wstool merge -t src https: // raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall wstool update -t src

Cartographer安装与卸载

喜欢而已 提交于 2020-04-25 18:36:19
注意:protoc版本会影响后续的安装,首先确认系统中有没有protobuf:locate protobuf;如果有,把所有与其相关的文件全部删除,再安装 1:安装ceres_solver (1)cmake .. -G Ninja -DCXX11=ON (2)ninja (3)sudo ninja install 2:安装protobuf3 (1)cmake -G Ninja -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -Dprotobuf_BUILD_TESTS=OFF ../cmake (2)ninja (3)sudo ninja install 3:安装cartographer (1)cmake .. -G Ninja (2)ninja (3)sudo ninja install 3.1刷新安装的库 (1)sudo updatedb 4:在自己的ws下编译cartographer_ros 5:卸载cartographer (1)locate cartographer (2)rm所有.h .a bin等文件(/usr/local/share/cartographer /usr/local/include/cartographer /usr/local/bin/) 来源: oschina 链接:

用动画和实战打开 React Hooks(一):useState 和 useEffect

女生的网名这么多〃 提交于 2020-04-15 07:37:41
【推荐阅读】微服务还能火多久?>>> 本文由图雀社区成员 mRc 写作而成,欢迎加入 图雀社区 ,一起创作精彩的免费技术教程,予力编程行业发展。 如果您觉得我们写得还不错,记得 点赞 + 关注 + 评论 三连,鼓励我们写出更好的教程💪 自从 React 16.8 发布之后,它带来的 React Hooks 在前端圈引起了一场无法逆转的风暴。React Hooks 为函数式组件提供了无限的功能,解决了类组件很多的固有缺陷。这篇教程将带你快速熟悉并掌握最常用的两个 Hook: useState 和 useEffect 。在了解如何使用的同时,还能管窥背后的原理,顺便实现一个 COVID-19(新冠肺炎)可视化应用。 欢迎访问本项目的 GitHub 仓库 和 Gitee 仓库 。 起步 前提条件 在阅读这篇教程之前,希望你已经做了如下准备: 掌握了 React 基础知识,例如组件、JSX、状态等等,如果你不了解的话,请先学习 《一杯茶的时间,上手 React 框架》 配置好 Node 环境,可参考 《一杯茶的时间,上手 Node.js》 为什么会有 Hooks? 在 Hooks 出现之前,类组件和函数组件的分工一般是这样的: 类组件 提供了完整的状态管理和生命周期控制,通常用来承接复杂的业务逻辑,被称为“ 聪明组件 ” 函数组件 则是纯粹的从数据到视图的映射,对状态毫无感知