1

我正在使用 boost.build 编译引用库CGNS的 c++ 代码,但是在使用 boost.build 时遇到了一些困难。CGNS 编译成一个库,带有一个用于平台的文件夹,例如 [path]/LINUX 用于 linux 构建。我想在构建中包含库 [path]/LINUX/libcgns.a。我希望这是跨平台的,因此 LINUX 目录被引用用于 LINUX 构建,而 WIN 目录用于 WIN 构建(我相信这有平台条件)。

我设法包含了库头文件,但是我该如何处理库的条件包含呢?我的简单测试 Jamroot.jam,其中 main.cpp 只是 CGNS 文档中的一个示例。

exe CGNSTest 
    : src/main.cpp 
    : <include>../Dependencies/cgnslib ;

另外,我想将 CGNS 库构建到我的二进制文件中(静态引用?)

4

1 回答 1

1

使用两个参考,http://www.highscore.de/cpp/boostbuild/http://www.boost.org/doc/tools/build/doc/userman.pdf,我创建了一些有用的东西,但它可能不是理想的。

lib cgns 
    : # sources 
    : # requirements
      <name>cgns 
        <target-os>linux:<search>../Dependencies/cgnslib/LINUX
        <target-os>windows:<search>../Dependencies/cgnslib/WIN32
    : # default-build
    : # usage-requirements
      <include>./../Dependencies/cgnslib ;
alias static_libraries : cgns : <link>static ;
exe CGNSTest 
    : src/main.cpp static_libraries 
    : <target-os>windows:<linkflags>/NODEFAULTLIB:MSVCRTD ;
于 2010-09-27T14:38:38.063 回答