Debian/Ubuntu--blade安装与使用

部署运行你感兴趣的模型镜像

blade是腾讯推出的一个构建工具。本来感觉很新奇,后来发现了:Bazel,才发现blade原来是学Bazel的,很多方面都很像。

仓库地址:chen3feng/blade-build: A powerful build system from Tencent, support many mainstream programming languages, such as C/C++, java, scala, python, protobuf…

先自己安装python2或者python3,然后安装scons

sv=3.1.0
wget http://prdownloads.sourceforge.net/scons/scons-$sv.tar.gz
tar -xf scons-$sv.tar.gz
sudo python3 scons-$sv/setup.py install

然后进行安装:

git clone https://github.com/chen3feng/blade-build.git
cd blade-build
./install 
-> # ls -l `which blade`
lrwxrwxrwx 1 root root 36 Jul 23 22:40 /root/bin/blade -> /home/zhang/blade-build-master/blade

Blade要求项目源代码有一个明确的根目录,C++ 中的 #include 的路径也需要从这个目录开始写起,这个目录成为工作空间

Blade并不从某个配置文件或者环境变量读取这个信息,因为开发人员往往需要同时有多个工作空间并存。 Blade获取当前工作空间的方法是,无论当前从哪一级子目录运行,都从当前目录开始向上查找BLADE_ROOT文件,有这个文件的目录即为工作空间。

测试:

mkdir test && cd test
touch BLADE_ROOT #建空文件
touch BUILD hello.cpp

BUILD内容如下:

cc_binary(
   name = 'hello_test',
   srcs = [
     'hello.cpp'
   ]
 )

hello.cpp内容如下:

#include <iostream>
//using namespace std;
int main() {
 std::cout << "Hello World" << std::endl;
}

然后编译:

blade build .

会报错:

scons: Reading SConscript files ...
Blade(warning): Failed to get version control info in proj
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build64_release
cc1plus: error: thirdparty: No such file or directory [-Werror=missing-include-dirs]
cc1plus: some warnings being treated as errors
scons: *** [build64_release/proj/hello_test.objs/hello.cpp.o] Error 1
scons: building terminated because of errors.
Blade(error): building failure.
Blade(error): failure

这是因为GitHub仓库中默认的配置是存在问题的,修改文件blade.conf

cd blade-build
nano blade.conf

把第二行用#号注释了:

#    extra_incs='thirdparty',

然后编译就可以了:

-> # blade build .    
Blade: Entering directory `/root/test'
Blade(info): loading config file "/root/blade-build/blade.conf"
Blade(info): loading config file "/root/test/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 .
scons: done reading SConscript files.
scons: Building targets ...
scons: building associated VariantDir targets: build64_release
scons: done building targets.se/hello_test
Blade(info): building done.
Blade(info): cost time 3s

可以运行了:

-> # cd build64_release 
-> # ./hello_test
Hello World

更多内容参考:浅谈blade中C++Build的设计与实现 | 云烟记事录

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Ubuntu 系统中,`/etc/apt/sources.list` 文件用于配置软件源,指定系统从哪些服务器下载软件包。清华镜像源是国内常用的镜像源,使用它可以加快软件包的下载速度。 ### 配置清华镜像源 若要将 `/etc/apt/sources.list` 替换为清华镜像源,可按如下步骤操作: 1. **备份原始文件**:为防止配置出错,先备份原始的 `sources.list` 文件。 ```bash sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak ``` 2. **编辑源列表文件**:使用文本编辑器(如 `nano`)打开 `sources.list` 文件。 ```bash sudo nano /etc/apt/sources.list ``` 3. **替换为清华镜像源内容**:将文件中的原有内容替换为清华镜像源的内容。不同的 Ubuntu 版本,镜像源内容有所不同。以 Ubuntu 20.04(代号 focal)为例,清华镜像源内容如下: ```plaintext # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse # 预发布软件源,不建议启用 # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse ``` 4. **更新软件包信息**:保存并关闭文件后,执行以下命令更新软件包信息。 ```bash sudo apt update ``` ### 可能遇到的问题及解决办法 1. **更新时出现错误**:若更新时出现 `404 Not Found` 错误,可能是镜像源不支持当前 Ubuntu 版本,可检查镜像源内容,确保使用的是对应版本的镜像源。 2. **下载速度慢**:若下载速度仍然较慢,可能是网络问题或镜像源服务器负载过高,可尝试更换其他国内镜像源,如阿里云、中科大等。 3. **软件安装失败**:若安装软件时出现依赖问题,可尝试执行 `sudo apt --fix-broken install` 修复依赖关系,再重新安装软件。 ### 配置的作用 配置清华镜像源的主要作用是加快软件包的下载速度,因为清华镜像服务器位于国内,网络延迟较低,且带宽充足。此外,使用国内镜像源还能减少对官方服务器的访问压力,提高软件更新的稳定性。 ### 使用方法 配置好清华镜像源后,系统会自动从清华镜像服务器下载软件包。在安装、更新或删除软件时,无需额外操作,直接使用 `apt` 命令即可,例如: - **安装软件**: ```bash sudo apt install <软件名称> ``` - **更新软件包信息**: ```bash sudo apt update ``` - **升级已安装的软件**: ```bash sudo apt upgrade ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值