好的,我以前可能已经多次问过这个问题了,但我找不到合理的答案。
在linux下使用g ++ 4.9,我像这样构建了boost。我根据我从其他互联网建议的文档中收集的内容随机选择了这些值:
sudo ./bjam -a -j8 variant=release link=static runtime-link=shared threading=multi install --build-type=complete --layout=tagged --with-thread stage
但我只看到mt(因为我在名称中看到-mt),/usr/local/lib
中的共享和静态库。不,共享非线程库?
我很困惑:
link
和runtime-link
之间的区别是什么?threading=multi
和--with-thread
之间的区别是什么?如何构建多线程和非mt共享库,并尽可能提高速度优化?
答案 0 :(得分:1)
大部分内容记录在:
http://www.boost.org/build/doc/html/bbv2/overview/invocation.html
回答1:link指示您创建的库是静态的还是共享的,而runtime-link指示您的新库是否将使用共享或静态本机C和C ++库
回答2:threading = multi表示您的新库将利用系统的多线程功能。 --with-thread意味着您构建了BOOST线程库。在构建boost时,您可以选择仅构建可用库的子集。
要构建多线程和非线程,请使用选项
./ bjam .... threading = single threading = multi ....
一