如何交叉编译Boost库

时间:2016-02-10 18:24:57

标签: c++ boost cross-compiling

我正在尝试为ARM平台(poky工具链)交叉编译Boost库,我是新的交叉编译。我在第一步遇到问题 - 运行bootstrap.sh。我看到很多关于boost交叉编译的帖子,但在bootstrap级别没有那么多帮助。

几个问题:

1)我应该在'user-config.jam'中准确填写什么?我试过了:

using gcc : arm : arm-poky-linux-gnueabi-g++ ;

我看到许多指定编译器的确切路径。

2)放置user-config.jam文件的最佳位置在哪里?我尝试了我的家(〜)文件夹和当前文件夹。

3)工具链有一个名为“environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi”的文件,我应该在运行bootstrap之前“获取它”吗?

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

常见任务-1.64.0 https://www.boost.org/doc/libs/1_64_0/doc/html/bbv2/tasks.html

交叉编译 Boost.Build支持使用gcc和msvc工具集进行交叉编译。

使用gcc时,首先需要在user-config.jam中指定交叉编译器(请参阅“配置”部分),例如:

<div id="portfolio" class="container-fluid text-center bg-grey"> 
  <h2>Portfolio</h2><br>
  <div class="row text-center slideanim">
    <div class="col-sm-4">
      <div class="thumbnail">
        <img src="https://www.lastampa.it/image/contentid/policy:1.35414079:1561364425/MMNX-4954-ToSuaOceanTrench.jpg?f=gallery_1280&h=702&w=1280&$p$f$h$w=6352f9b"  width="400" height="300">
        
        <div class="overlay">
        <h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et.</h3>
      </div>
      <strong>Lorem ipsum dolor sit amet</strong>

    </div>
    </div>
    <div class="col-sm-4">
      <div class="thumbnail">
        <img src="https://www.lastampa.it/image/contentid/policy:1.35414077:1561364425/MMNX-4954-1280px-Calanque_de_Sormiou_5.jpg?f=gallery_1280&h=702&w=1280&$p$f$h$w=c0a1b8f"  width="400" height="300">
        
        <div class="overlay">
          <h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et.</h3>
      </div>
      <strong>Lorem ipsum dolor sit amet</strong>

      </div>
    </div>
    <div class="col-sm-4">
      <div class="thumbnail">
        <img src="https://www.lastampa.it/image/contentid/policy:1.35414078:1561364425/MMNX-4954-1280px-Jenny_Lake_boat_ride.jpg?f=gallery_1280&h=702&w=1280&$p$f$h$w=6d2bd4e"  width="400" height="300">
        
        <div class="overlay">
          <h3>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et.</h3>
      </div>
      <strong>Lorem ipsum dolor sit amet</strong>

      </div>
    </div>
  </div>
</div>

然后,如果主机和目标操作系统相同,例如Linux,则可以要求使用此编译器版本:

using gcc : arm : arm-none-linux-gnueabi-g++ ;

如果要与主机目标操作系统不同,则需要另外指定target-os功能的值,例如:

b2 toolset=gcc-arm

有关允许的操作系统名称的完整列表,请参阅target-os功能的文档。

使用msvc编译器时,只能交叉编译到32位主机上的64位系统。有关详细信息,请参见“ 64位支持”部分。