blade 是腾讯开发的一款现代构建系统,期望的目标是强大而好用,把程序员从构建的繁琐中解放出来。
Blade主要定位于linux下的大型C++项目,密切配合研发流程,比如单元测试,持续集成,覆盖率统计等。 但像unix下的文本过滤程序一样,保持相对的独立性,可以单独运行。目前重点支持i386/x86_64 Linux,未来可以考虑支持其他的类Unix系统。
这个是blade 开源项目中文章给出的官方解释。在我看来,blade最初的目的是服务于c++项目的,所以其实是为了简化makefile中繁琐的语法和依赖问题。
为了让自己的代码也可以使用到blade 构建,需要先部署安装。
blade的官方地址: https://github.com/chen3feng/blade-build
-
安装git和升级git版本
yum install git yum update git
根据blade 的官方用户手册安装其依赖:
https://github.com/chen3feng/blade-build/blob/master/doc/blade_user_manual.pdf
-
安装scons
yum install scons
-
安装ccache
yum install ccache
-
安装 distcc
yum install distcc
-
安装svn
yum install subversion
-
安装 cmake
yum install cmake
-
安装curl
yum install curl
-
python ,gcc一般系统自带,但是要编译的c++的文件,需要安装g++
yum install g++ 一般编译完了会缺少一些库文件,
安装完成。
测试下是否安装成功。
建一个空文件夹:
[pb@VM_16_3_centos workspace]$ ls
blade-build cpp
将blade-build的文件拷贝到workspace 目录。
在cpp文件夹写一个测试程序
写一个c++的程序:
#include <iostream>
int main(int argc, char* argv[]) {
std::cout << "hello, world!" << std::endl;
return 0;
}
在当前文件中写一个BUILD 文件:
cc_binary (
name = 'main',
srcs = 'main.cpp',
)
在workspace 目录下touch BLADE_ROOT 文件。
这个很重要,blade 是根据BLADE_ROOT文件来 判断哪个是代码的根路径的,比如你引入自己的头文件的时候,可以从BLADE_ROOT 下开始写 #include 文件。
所有就绪后,使用
blade build
验证是否可以编译过
[pb@VM_16_3_centos cpp]$ ls
BUILD main.cpp
[pb@VM_16_3_centos cpp]$
[pb@VM_16_3_centos cpp]$
[pb@VM_16_3_centos cpp]$ ../blade-build/blade build
Blade: Entering directory `/home/pb/workspace'
Blade(info): loading config file "/home/pb/workspace/blade-build/blade.conf"
Blade(info): loading config file "/home/pb/workspace/BLADE_ROOT"
Blade(info): loading BUILDs...
Blade(info): loading done.
Blade(info): analyzing dependency graph...
Blade(info): analyzing done.
Blade(info): generating build rules...
Blade(warning): Unsupported C/C++ flags: -Werror=format-nonliteral
Blade(info): generating done.
Blade(info): building...
Blade(info): tunes the parallel jobs number(-j N) to be 2
scons: Reading SConscript files ...
Blade(warning): Failed to get version control info in cpp
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build64_release
cc1plus: warning: thirdparty: No such file or directory [enabled by default]
scons: done building targets.se/cpp/main
Blade(info): building done.
[pb@VM_16_3_centos cpp]$ ../build64_release/cpp/main
hello, world!
[pb@VM_16_3_centos cpp]$
安装,部署完成!!!
网友评论