使用bjam进行简单安装

时间:2009-10-29 10:59:14

标签: boost bjam boost-build boost-bjam

我是一个boost.build newby,虽然bjam很容易用于大多数编译任务,但我并没有想出如何做一些非常简单的事情:在系统中安装我的应用程序。

假设我有一个非常简单的项目,在树中有两个文件(除了Jamroot)。

  • hello.cpp:一个C ++程序说打印/etc/hello.conf的内容

  • hello.conf:默认的hello.conf

我想做的是:

  • 能够在不安装任何系统范围的情况下编译和链接hello.cpp
  • 使用安装目标调用时(仅适用于):
    • 将可执行文件hello复制到/ usr / bin
    • 将hello.conf复制到/ etc。

下面是我开始写的bjam:

exe hello : hello.cpp ;
alias install : install-bin  install-etc ;
install install-bin : hello : <location>/usr/bin ;
install install-etc : hello.conf : <location>/etc ;

我的问题是,作为用户,我无法写入/ etc和/ usr / bin,我希望只有在明确调用安装目标时才能执行此操作,而不是每次键入bjam时都这样做。

将安装和构建阶段分开是非常重要的,因为构建阶段应该使用用户权限并使用管理员权限安装阶段。

1 个答案:

答案 0 :(得分:3)

你写的内容似乎很好,除了两个问题。首先,最后一行应为:

install install-etc : hello.conf : <location>/etc ;
explicit install install-bin install-etc ;

其次,install别名应引用install-bininstall-etc。当你做出这些改变时,做事情会有效吗?