Boost License是否允许将我需要的东西的源代码添加到我的项目中(当然还有许可证?)。我找不到任何“描述性”确认。我会分开Include / boost和Source / boost目录以便于访问。
PS:看到boost :: filesystem进入C ++ 0x TR2,而lambda,regex和whatnot已经在c ++ 0x TR1中,我看不出有任何理由像cx函数那样玩杂耍,getcwd等。无论如何它们都不能很好地运作......
更新:我按文件夹添加所需文件“逐个”文件夹,但数量巨大。也许最好包括完整的boost dist ....
答案 0 :(得分:4)
是的,你可以这样做。 license非常自由。唯一的条件是,如果您以源代码形式重新分发软件,则需要包含许可证的完整副本。
答案 1 :(得分:1)
我建议链接到外部提升,而不是直接将源包含到您的项目中。 除了巨大的spiderweb依赖问题,在外部链接它们意味着你总是可以引用最新的稳定构建(假设你从存储库中检出),而不会明确地覆盖项目中的每个旧源。
答案 2 :(得分:1)
有一个名为bcp的boost附带的实用程序可以扫描你的源并提取从boost源使用的任何boost头文件。我已经设置了一个脚本,将这个提取到我们的源代码树中,这样我们就可以将我们需要的源和代码打包在一起。它还会复制我们使用的几个只有头文件的boost库的boost源文件,然后直接编译到我们的应用程序中。这样,只要有新版本的boost发布,就可以轻松地重新运行脚本。
供参考,这是我们使用的
#!/ bin / sh的
BOOST_SRC = ... / boost_1_43_0
dest_dir将= .. / src目录/升压
工具包=
if(test uname
=“Darwin”)然后
工具包=“ - 工具集=达尔文”
网络
# make bcp if necessary
if ( ! test -x $BOOST_SRC/dist/bin/bcp ) then
if ( test -x $BOOST_SRC/tools/jam/*/bin.*/bjam ) then
BJAM=$BOOST_SRC/tools/jam/*/bin.*/bjam
else
echo "### Building bjam"
pushd $BOOST_SRC/tools/jam
./build_dist.sh
popd
if ( test -x $BOOST_SRC/tools/jam/*/bin.*/bjam ) then
BJAM=$BOOST_SRC/tools/jam/*/bin.*/bjam
fi
fi
echo "BJAM: $BJAM"
pushd $BOOST_SRC/tools/bcp
echo "### Building bcp"
echo "$BJAM $TOOLSET"
$BJAM $TOOLSET
if [ $? == "0" ]; then
exit 1;
fi
popd
fi
if ( ! test -x $BOOST_SRC/dist/bin/bcp) then
echo "### Couldn't find bpc"
exit 1;
fi
mkdir -p $DEST_DIR
echo "### Copying boost source"
MAKEFILEAM=$DEST_DIR/libs/Makefile.am
rm $MAKEFILEAM
# copy source libraries
mkdir -p $DEST_DIR/libs/signals/src
cp $BOOST_SRC/libs/signals/src/* $DEST_DIR/libs/signals/src/.
echo -n "boost_sources += " >> $MAKEFILEAM
for f in `ls $DEST_DIR/libs/signals/src | fgrep .cpp`; do
echo -n "boost/libs/signals/src/$f " >> $MAKEFILEAM
done
echo >> $MAKEFILEAM
echo "### Extracting boost includes"
$BOOST_SRC/dist/bin/bcp --scan --boost=$BOOST_SRC ../src/*/*.[Ch] $DEST_DIR
if [ $? != "0" ]; then
echo "### bcp failed"
rm -rf $DEST_DIR
exit 1;
fi