Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Mac OS X上出现编译错误的boost 1.53_C++_Macos_Boost_Compilation - Fatal编程技术网

C++ Mac OS X上出现编译错误的boost 1.53

C++ Mac OS X上出现编译错误的boost 1.53,c++,macos,boost,compilation,C++,Macos,Boost,Compilation,我想用clang构建boost,我安装了最新的xcode和命令行工具。编译b2现在我尝试: -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 -

我想用clang构建boost,我安装了最新的xcode和命令行工具。编译
b2
现在我尝试:

-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
执行配置检查
-32位:否
-64位:是的
-x86:是的
-有没有:没有
警告:图形库不包含基于MPI的并行组件。
注意:要启用它们,请在user-config.jam中添加“using mpi;”
-iconv(libc):不
-iconv(单独):是
-重症监护病房:没有
-icu(lib64):没有
-gcc可见性:是
-长双支撑:是的
警告:跳过可选的消息传递接口(MPI)库。
注意:要启用MPI支持,请将“使用MPI;”添加到user-config.jam。
注意:若要抑制此消息,请将“-不带mpi”传递给bjam。
注意:否则,您可以安全地忽略此消息。
/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
错误:实际目标的名称重复:libboost_atomic.dylib
错误:上一个虚拟目标{clang darwin%clang-darwin.link.dll-libboost_atomic.dylib.SHARED_LIB{clang darwin%clang darwin.compile.c++-lockpool.o.OBJ{lockpool.cpp.cpp}
错误:从libs/atomic/build/boost\u-atomic创建
错误:另一个虚拟目标{clang darwin%clang-darwin.link.dll-libboost_atomic.dylib.SHARED_LIB{clang darwin%clang darwin.compile.c++-lockpool.o.OBJ{lockpool.cpp.cpp}
错误:从libs/atomic/build/boost\u-atomic创建
错误:添加属性:关闭NDEBUG全速关闭发布
错误:删除的属性:调试时打开关闭
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/build/virtual target.jam:490:in-realization无来自模块对象(文件目标)的扫描仪@67176
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/build/virtual target.jam:135:in-object(file-target)@67176.implementation-from-module object(file-target)@67176
/用户/tim/Desktop/Work/boost_1_53_0/tools/build/v2/build system.jam:749:从模块构建系统加载
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/kernel/modules.jam:283:从模块导入
/Users/tim/Desktop/Work/boost_1_53_0/tools/build/v2/kernel/bootstrap.jam:142:来自模块的boost构建
/Users/tim/Desktop/Work/boost_1_53_0/boost build.jam:17:来自模块的模块范围内

因此,我有一个基本问题:如何修复此类错误?

如果不构建调试版本,错误就会消失。看起来无法在同一目录中安装调试库和发布库

这个命令有效

./b2 toolset=clang cxxflags="-std=c++11 -stdlib=libc++" linkflags="-stdlib=libc++" --prefix="./install-dir" release install
顺便说一句,在mac(和linux)上的应用程序调试版本中链接release boost库是可以的。您不需要调试构建,除非您想要调试boost

这与Windows上的VisualStudio不同,在Windows上,您需要boost的调试版本来链接到应用程序的调试版本