Boost.Build

Boost.Build makes it easy to build C++ projects, everywhere.

Boost.Build让构建C++项目在任何地方都很容易。

You name your executables and libraries and list their sources. Boost.Build takes care about compiling your sources with right options, creating static and shared libraries, making executables, and other chores — whether you’re using gcc, msvc, or a dozen more supported C++ compilers — on Windows, OSX, Linux and commercial UNIX systems.

我们只需要命名可执行文件(库),并列出它们的源代码。Boost.Build负责在Windows、OSX、Linux和商业UNIX系统上使用正确的选项编译源代码、创建静态和共享库、创建可执行程序,以及其他一些繁琐的工作 — 不管是使用gcc、msvc还是其他十几个受支持的c++编译器。

  • Simple and high level build description. In most cases a name of target and list of sources is all you need.

  • 简单和高层次的构建描述。在大多数情况下,只需要目标名称和源列表。

  • Portability. Most important build properties have symbolic names that work everywhere. Why memorize compiler flags necessary for multi-threaded 64-bit shared library, if Boost.Build can do it for you?

  • 可移植性。最重要的构建属性都有符号名,这些符号名在任何地方都适用。如果Boost.Build能够代劳,为什么要记住多线程64位共享库所需的编译器标志呢?

  • Variant builds. When you build the same project twice with different properties, all produced files are placed in different directories, so you can build with 2 versions of gcc, or both debug and release variants in one invocation.

  • 多版本构建。当您使用不同的属性两次构建相同的项目时,所有生成的文件都放在不同的目录中,因此您可以使用gcc的两个版本进行构建,或者在一次调用中同时构建调试和发行版。

  • Global dependencies. No matter what directory you build in, Boost.Build will always check all dependencies in your entire project, preventing inconsistent binaries. And it’s easy to use one Boost.Build project in other, again with full dependency tracking.

  • 全局依赖关系。无论在哪个目录中构建,Boost.Build都会检查整个项目中的所有依赖项,防止不一致的二进制文件。而且在其他项目中使用一个Boost.Build项目也很容易,同样也具有完全的依赖性跟踪。

  • Usage requirements. A target can specify properties, like include paths and preprocessor defines, that are necessary to use it. Those properties will be automatically applied whenever the target is used.

  • 按需使用。目标可以指定需要使用的属性, 比如包含路径和预处理器定义。这些属性将在使用目标时自动应用。

最新文章

  1. keras安装
  2. sql数据库表被锁,无法查询
  3. jQuery触发<a>标签的点击事件后URL不跳转的解决办法
  4. 基于smarty+medoo手搭php简单的框架
  5. 根据IP地址获取IP的详细信息
  6. sqlmap新手注入
  7. oracle 开发笔记“跨数据库查询复制”
  8. centos6.5下Zabbix系列之Zabbix安装搭建及汉化 (转)
  9. netty4.x 传输文件
  10. (NO.00001)iOS游戏SpeedBoy Lite成形记(十四)
  11. Activity,Window,View之间是什么关系?
  12. 翻转 -- CodeForces - 56B
  13. win7系统内网共享打印机设置
  14. POJ 3463 Sightseeing (次短路经数)
  15. 配置python开发环境(Eclipse + pyDev)
  16. c++ stl源码剖析学习笔记(二)iterator
  17. 2018-2019-20172321 《Java软件结构与数据结构》第八周学习总结
  18. Oracle体系结构三(学习笔记)
  19. SDWebImage从缓存中获取图片
  20. 解决数据库SUSPECT(置疑)状态

热门文章

  1. 【nginx】记录nginx+php-fpm实现大文件下载排坑的过程
  2. 洛谷 2048 BZOJ 2006 [NOI2010]超级钢琴
  3. Hdu 4864(Task 贪心)(Java实现)
  4. 类中的__call__()
  5. 抽象类和接口有什么区别---https://blog.csdn.net/csdn_aiyang/article/details/71171886
  6. 一位ACMer过来人的心得
  7. vue.js组件之间的通讯-----父亲向儿子传递数据,儿子接收父亲的数据
  8. php处理管道文件流
  9. HDU——1133 Buy the Ticket
  10. 20、Java并发性和多线程-Slipped Conditions