提升库名称+ android ndk + osx和windows build

时间:2011-08-01 21:30:02

标签: android boost android-ndk

我已经在windows和osx上构建了对android的提升,并且遇到了升级库名称的问题。在Windows上,boost会为库名添加一些说明符,例如libboost_filesystem-gcc-mt-s-1_46.a但是在osx上它省略了所有附加信息,只是:libboost_filesystem.a。

现在问题出在我的Android.mk文件中,我需要链接到lib,但每个平台的名称都不同。我正在寻找第一个两个解决方案之一:有没有办法告诉boost删除其他说明符,只使用你在这里看到的osx格式(无论libs是建立在什么平台上)或两个:是否有在我的Android.mk中确定构建环境是否为Windows的方法?我宁愿选择#1的解决方案,但是任何一个人都会让我这一点。

谢谢!

1 个答案:

答案 0 :(得分:1)

来自bjam --help列表:

  

<强> --layout=<layout>

     

确定是否选择库名称和标题位置,以便可以在同一系统上使用多个版本的Boost或多个编译器。

     
      
  • 版本化 - 增强二进制文件的名称包括Boost版本号,编译器的名称和版本以及编码的构建属性。 Boost标头安装在<HDRDIR>的子目录中,其名称包含Boost版本号。
  •   
  • tagged - boost二进制文件的名称包括编码的构建属性,例如变体和线程,但不包括编译器名称和版本,或Boost版本。如果使用相同的编译器构建Boost的多个变体,则此选项很有用。
  •   
  • system - 二进制名称不包括Boost版本号或编译器的名称和版本号。 Boost标头直接安装到<HDRDIR>中。此选项适用于构建分发包的系统集成商。
  •   
     

Windows上的默认值为'versioned',Unix上为'system'。

听起来你想在两个平台上使用--layout=tagged--layout=system进行构建,因此生成的文件名是一致的。