2013-04-09 110 views
1

我想用鏗鏘創建boost,我安裝了最新的xcode和命令行工具。編譯b2現在我嘗試:在Mac OS X上使用鐺編譯錯誤提升1.53

-mac:boost_1_53_0 tim$ ./b2 toolset=clang cxxflags="-std=c++11 -stdlib=libc++" linkflags="-stdlib=libc++" --prefix="./install-dir" debug release install 

,並得到下一個作爲輸出:

Performing configuration checks 

    - 32-bit     : no 
    - 64-bit     : yes 
    - x86      : yes 
    - has_icu builds   : no 
warning: Graph library does not contain MPI-based parallel components. 
note: to enable them, add "using mpi ;" to your user-config.jam 
    - iconv (libc)    : no 
    - iconv (separate)   : yes 
    - icu      : no 
    - icu (lib64)    : no 
    - gcc visibility   : yes 
    - long double support  : yes 
warning: skipping optional Message Passing Interface (MPI) library. 
note: to enable MPI support, add "using mpi ;" to user-config.jam. 
note: to suppress this message, pass "--without-mpi" to bjam. 
note: otherwise, you can safely ignore this message. 
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/build/virtual-target.jam:1079: in virtual-target.register-actual-name from module virtual-target 
error: Duplicate name of actual target: <pinstall-dir/lib>libboost_atomic.dylib 
error: previous virtual target { clang-darwin%clang-darwin.link.dll-libboost_atomic.dylib.SHARED_LIB { clang-darwin%clang-darwin.compile.c++-lockpool.o.OBJ { lockpool.cpp.CPP } } } 
error: created from libs/atomic/build/boost_atomic 
error: another virtual target { clang-darwin%clang-darwin.link.dll-libboost_atomic.dylib.SHARED_LIB { clang-darwin%clang-darwin.compile.c++-lockpool.o.OBJ { lockpool.cpp.CPP } } } 
error: created from libs/atomic/build/boost_atomic 
error: added properties: <debug-symbols>off <define>NDEBUG <inlining>full <optimization>speed <runtime-debugging>off <variant>release 
error: removed properties: <debug-symbols>on <inlining>off <optimization>off <runtime-debugging>on <variant>debug 
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/build/virtual-target.jam:490: in actualize-no-scanner from module object(file-target)@67176 
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/build/virtual-target.jam:135: in object(file-target)@67176.actualize from module object(file-target)@67176 
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/build-system.jam:749: in load from module build-system 
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/kernel/modules.jam:283: in import from module modules 
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module 
/Users/tim/Desktop/Work/boost_1_53_0/boost-build.jam:17: in module scope from module 

所以我有一個基本的問題:如何解決這樣的錯誤?

回答

3

如果您不構建調試版本,則錯誤消失。看起來你不能在同一個目錄下安裝調試和發佈庫。

此命令的工作

./b2 toolset=clang cxxflags="-std=c++11 -stdlib=libc++" linkflags="-stdlib=libc++" --prefix="./install-dir" release install 

順便說一句,這是確定在您的應用程序的調試版本鏈接在Mac上(在Linux)發佈Boost庫。除非你想調試boost,否則你不需要調試版本。

這與Windows上的VisualStudio不同,您需要將boost的調試版本鏈接到應用程序的調試版本。