C++ 如何构建用于分段堆栈支持的boost光纤库

C++ 如何构建用于分段堆栈支持的boost光纤库,c++,c++11,boost,fiber,C++,C++11,Boost,Fiber,我正在尝试构建boost fiber库,我不确定要传递给./b2的命令行参数是什么 ./b2--重新配置cxxflags=“-std=c++14”线程=多变量=发布链接=共享--工具集=gcc分段堆栈=打开 执行配置检查 - 32-bit : no - 64-bit : yes - arm : no - mips1 : no - power

我正在尝试构建boost fiber库,我不确定要传递给./b2的命令行参数是什么

./b2--重新配置cxxflags=“-std=c++14”线程=多变量=发布链接=共享--工具集=gcc分段堆栈=打开 执行配置检查

- 32-bit                   : no
- 64-bit                   : yes
- arm                      : no
- mips1                    : no
- power                    : no
- sparc                    : no
- x86                      : yes

构建Boost C++库.< /P>

- symlinks supported       : yes
- C++11 mutex              : yes
- lockfree boost::atomic_flag : yes
- Boost.Config Feature Check: cxx11_auto_declarations : yes
- Boost.Config Feature Check: cxx11_constexpr : yes
- Boost.Config Feature Check: cxx11_defaulted_functions : yes
- Boost.Config Feature Check: cxx11_final : yes
- Boost.Config Feature Check: cxx11_hdr_tuple : yes
- Boost.Config Feature Check: cxx11_lambdas : yes
- Boost.Config Feature Check: cxx11_noexcept : yes
- Boost.Config Feature Check: cxx11_nullptr : yes
- Boost.Config Feature Check: cxx11_rvalue_references : yes
- Boost.Config Feature Check: cxx11_template_aliases : yes
- Boost.Config Feature Check: cxx11_thread_local : yes
- Boost.Config Feature Check: cxx11_variadic_templates : yes
- has_icu builds           : yes
警告:图形库不包含基于MPI的并行组件。 注意:要启用它们,请在user-config.jam中添加“using mpi;” -兹利布:是的 -bzip2:没有 -iconv(libc):是的 -重症监护病房:是的 -native-atomic-int32-supported:是 -pthread支持健壮的互斥体:是 -编译器支持可见性:是 -编译器-supports-ssse3:是 -编译器-supports-avx2:是 -gcc可见性:是 -长双支撑:是的 警告:跳过可选的消息传递接口(MPI)库。 注意:要启用MPI支持,请将“使用MPI;”添加到user-config.jam。 注意:若要抑制此消息,请将“-不带mpi”传递给bjam。 注意:否则,您可以安全地忽略此消息

组件配置:

- atomic                   : building
- chrono                   : building
- container                : building
- context                  : building
- coroutine                : building
- coroutine2               : building
- date_time                : building
- exception                : building
- fiber                    : building
- filesystem               : building
- graph                    : building
- graph_parallel           : building
- iostreams                : building
- locale                   : building
- log                      : building
- math                     : building
- metaparse                : building
- mpi                      : building
- program_options          : building
- python                   : building
- random                   : building
- regex                    : building
- serialization            : building
- signals                  : building
- system                   : building
- test                     : building
- thread                   : building
- timer                    : building
- type_erasure             : building
- wave                     : building

gcc.link.dll bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/libboost_fiber.so.1.62.0
/usr/bin/ld: bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/algo/algorithm.o: relocation R_X86_64_PC32 against undefined symbol `__morestack' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

    "g++"    -o "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/libboost_fiber.so.1.62.0" -Wl,-h -Wl,libboost_fiber.so.1.62.0 -shared -Wl,--start-group "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/algo/algorithm.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/algo/round_robin.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/algo/shared_work.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/barrier.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/condition_variable.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/context.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/fiber.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/future.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/mutex.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/properties.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/recursive_mutex.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/recursive_timed_mutex.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/timed_mutex.o" "bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/scheduler.o" "bin.v2/libs/context/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/libboost_context.so.1.62.0"  -Wl,-Bstatic  -Wl,-Bdynamic -lrt -Wl,--end-group -pthread -m64 

...failed gcc.link.dll bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi/libboost_fiber.so.1.62.0...
...skipped <pstage/lib>libboost_fiber.so.1.62.0 for lack of <pbin.v2/libs/fiber/build/gcc-5.4.0/release/segmented-stacks-on/threading-multi>libboost_fiber.so.1.62.0...
...skipped <pstage/lib>libboost_fiber.so for lack of <pstage/lib>libboost_fiber.so.1.62.0...
-原子:建筑
-时钟:建筑物
-集装箱:建筑
-背景:建筑
-协同程序:构建
-合作项目2:建筑
-日期和时间:建筑
-例外情况:建筑
-光纤:建筑
-文件系统:构建
-图表:建筑
-图形并行:建筑
-iostreams:建筑
-地点:大厦
-日志:建筑
-数学:建筑
-元分析:构建
-mpi:建筑
-项目选项:建筑
-python:构建
-随机:建筑
-正则表达式:建筑物
-序列化:构建
-信号:建筑
-系统:建筑
-测试:建筑
-主题:建筑
-计时器:建筑物
-类型_擦除:建筑物
-波浪:建筑物
gcc.link.dll bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stack on/threading multi/libboost_fiber.so.1.62.0
/usr/bin/ld:bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/algoo/algorithm.o:在创建共享对象时,不能使用针对未定义符号“%uuuu morestack”重新定位R_X86_64_PC32;用-fPIC重新编译
/usr/bin/ld:最终链接失败:错误值
collect2:错误:ld返回了1个退出状态
“g++”-o“bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/libboost_fiber.so.1.62.0”-Wl,-h-Wl,libboost_fiber.so.1.62.0-shared-Wl,--启动组“bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/algo/algorithm.o”“bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stack on/threading multi/algo/round_robin.o”“bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stack on/threading multi/algo/shared_work.o”“bin.v2/libs/fiber/build/gcc-5.4.0/segmented stack on/threading multi/barrier.o”bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/condition_variable.o“bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/fiber.o”bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/future.o“bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/mutex.o”“bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/properties.o”bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stack on/threading multi/recursive\u mutex.o“bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stack on/threading multi/recursive\u timed\u mutex.o”“bin.v2/libs/fiber/build/gcc-5.4.0/segmented stack on/threading multi/timed\u mutex.o”bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/scheduler.o“”bin.v2/libs/context/build/gcc-5.4.0/release/segmented stacks on/threading multi/libboost_context.so.1.62.0“-,-Bstatic-Wl,-Bdynamic-lt-Wl,-,-end group-pthread-m64
…失败的gcc.link.dll bin.v2/libs/fiber/build/gcc-5.4.0/release/segmented stacks on/threading multi/libboost_fiber.so.1.62.0。。。
…跳过了libboost_fiber.so.1.62.0,因为缺少libboost_fiber.so.1.62.0。。。
…跳过了libboost_fiber.so,因为缺少libboost_fiber.so.1.62.0。。。

由于“link=shared”,您需要添加“linkflags=-lgcc”(libgcc包含与拆分堆栈相关的函数)