1

ライブラリCGNSを参照する c++ コードをコンパイルするために boost.build を使用していますが、boost.build を使用してこれを行うのに問題があります。CGNS は、Linux ビルドの [path]/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の2 つの参照を使用して、機能するものを作成しましたが、理想ではないかもしれません。

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 に答える