blade ninja編譯環境搭建

2021-10-25 15:24:35 字數 3516 閱讀 5477

4 shell指令碼

平時上班擼太多業務**了,基本也都是業務需求,沒啥機會接觸到深層次技術類的東西,感覺長此以往技術水平要被廢掉了。剛好之前也買了臺樹莓派一直放著吃灰,就拿來作為一台伺服器吧,雖然不能外網訪問,但是效能要比雲伺服器好很多,因此決定自己閒暇時搞個大雜燴專案,自己動手搞各種後端的小東西,形成乙個**,要啥功能加啥功能,後端盡量自己造輪子的同時加以優化。

理想很豐滿,現實很骨感。在公司擼**擼習慣了,各種框架啥的都有,現在一下子來個全裸的git庫,有點不知從何下手。擼了個雪花演算法實現id生成後(後面再單獨開一章來講雪花演算法),就到了編譯的問題了。

編譯要是搞makefile,對於大專案來說就有點麻煩了,因此參考使用blade來進行編譯,裝了blade發現,現在已經公升級到blade2了,需要再安裝一下ninja才能使用,麻煩是麻煩了點,不過編譯速度那是槓槓的。

廢話不多說,現在開始正文。

git clone [email protected]:chen3feng/blade-build.git

# 如果機器沒有搞github的ssh-key的話,用git clone

cd blade-build

./install

source ~/.profile
blade
usage: blade [-h]

[--version]

...blade: error: the following arguments are required: command

blade(error): failure

拉取ninja原始碼

git clone [email protected]:ninja-build/ninja.git

# 如果機器沒有搞github的ssh-key的話,用git clone

cd ninja

./configure.py --bootstrap

cp ninja ~/bin

ninja --version
1.10.2.git
以我的小demo測試為例,舉例說明一下blade檔案樹的結構。

#include

"cpp_common/uniq_id/snow_flake.hpp"

// 由於是同乙個目錄,因此也可以是#include "snow_flake.hpp"

#include

"cpp_common/utils/facility.hpp"

// 這個檔案跟snow_flake.cpp不是同乙個目錄,得寫完整

# generated by huangwf @ 2021.02.07

cc_library (

name =

'cpp_common'

, srcs =

['uniq_id/snow_flake.cpp'

,'utils/facility.cpp',]

, hdrs =

['uniq_id/snow_flake.hpp'

,'utils/facility.hpp',]

,)

# generated by huangwf @ 2021.02.07        

cc_binary (

name =

'test_uniq_id'

, srcs =

['cpp_common/demo/test_uniq_id.cpp',]

, deps =

['#pthread'

,'//cpp_common:cpp_common',]

,)

blade build
blade: entering directory `/home/pi/github/mix_exercises'

blade(info): loading config file

"/home/pi/github/mix_exercises/blade-build/blade.conf"

blade(info): loading config file

"/home/pi/github/mix_exercises/blade_root"

blade(info): loading build files...

blade(info): loading done.

blade(info): analyzing dependency graph...

blade(info): analyzing done.

blade(info): generating backend build code...

blade(info): generating done.

blade(info): building...

blade(info): adjust build jobs number(-j n) to be 4

[2/2] link build32_release/test_uniq_id

blade(info): build success.

cd blade-build/

vim blade.conf

#'-werror=unused-label',

#'-werror=unused-result',

#'-werror=unused-value',

#'-werror=unused-variable',

'-werror=write-strings',

git submodule add [email protected]:chen3feng/blade-build.git blade-build

git submodule add [email protected]:ninja-build/ninja.git ninja

#!/bin/bash

function check_blade(

)function install_blade(

)function check_ninja(

)function install_ninja(

)function build_normal(

)function blade_clean(

)########### 主流程 ###########

case

$1in

'build'

) build_normal

;;'clean'

) blade_clean

;; *)

build_normal

;;esac

ubuntu中openwrt編譯環境的搭建

搭建openwrt編譯環境要保證ubuntu系統中磁碟空間足夠,並且所有操作最好在普通使用者許可權下進行,如果使用的是root許可權,需要執行exit命令退出root許可權,否則後續編譯的時候可能出現一些出錯。逐條輸入如下命令檢查更新並搭建好開發環境 sudo apt get install g s...

github pages Jekyll環境搭建

通過jekyll可以搭建 簡單理解成網頁生成規則,就是通過配置能自動幫你生成靜態網頁的東西。如何配置,請看 首先要更新ruby,系統倉庫裡最新的是1.9.3,而jekyll要求 2.0 最終版本資訊 ruby v ruby 2.3.3p222 2016 11 21 revision 56859 x8...

iOS WebDriverAgent 環境搭建

webdriveragent是facebook 在去年的 seleniumconf 大會上推出了一款新的ios移動測試框架。當時的推文申明,還只支援模擬器,不過在今年4月更新的版本中,官方宣稱支援真機測試了,大家可以檢視官方github 的介紹 下面摘錄一段官方對於webdriveragent的介紹...