簡體   English   中英

Boost.Build最佳實踐,為項目引入預先構建的庫

[英]Boost.Build best practice to introduct a pre-built library to the project

我們目前使用這樣的`lib'將一個外部預建庫引入項目中:

lib ace_lib_static : : <name>libboost_ace-vc80-mt-sgd.lib <variant>debug <toolset>msvc <address-model>64
                <search>../lib/ACE_wrappers/lib64
                ;
lib ace_lib_static : : <name>libboost_ace-vc80-mt-s.lib <variant>release <toolset>msvc <address-model>64
                <search>../lib/ACE_wrappers/lib64
                ;

lib ace_lib_static : : <name>libboost_ace-vc80-mt-sgd-5_6_8.lib <variant>debug <toolset>msvc 
    <search>../lib/ACE_wrappers
    ;

lib ace_lib_static : : <name>libboost_ace-vc80-mt-s-5_6_8.lib <variant>release <toolset>msvc 
    <search>../lib/ACE_wrappers
    ;

project myProject
: requirements <include>.
<include>../lib/ACE_wrappers
<define>ACE_AS_STATIC_LIBS
...

要在項目中正確使用ace_lib_static,我們必須將塊復制到項目的jamfile中。 請注意,它定義了文件名,搜索目錄,包含目錄和宏。 這僅適用於VC 8.0。 如果我們添加對其他編譯器的支持,那么塊更大。

有沒有更好的方法在boost.build中引入外部預構建的lib? 理想情況下,我們希望項目jamfile可以引用一個單獨的jamfile,並添加幾行以使其可用於項目。

您可以在任何目錄中創建一個名為Jamroot的新文件,其中包含上面的“lib”定義。 然后,您的項目可以:

   use-project /ace : <location-to-that-directory> ;

   exe a : a.cpp : /ace//ace_lib_static ;

我還建議您將../lib/ACE_wrappers添加到使用要求中,以便引用/ ace // ace_lib_static將自動添加include。

HTH,Volodya

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM