创建 Boost 构建脚本时,如何转义 pwd 路径中的空格?

创建 Boost 构建脚本时,如何转义 pwd 路径中的空格?

我想用一些特定的选项来编译 Boost(例如:使用最新源代码中的 zlib)

因此我尝试下一个 bash 代码如下:

WD=`pwd`
#//...
cd $BOOST_ROOT_DIR

echo_run ./bootstrap.sh
#// problem with \"$WD/$ZLIB_ROOT_DIR\"
echo_run ./b2 -j4 -d0 debug release --toolset=gcc --with-thread --with-system --with-filesystem --with-program_options --with-regex --with-date_time --with-iostreams -sZLIB_SOURCE=\"$WD/$ZLIB_ROOT_DIR\"   link=static runtime-link=static --prefix=./$BOOST_INSTALL_SUBDIR install
echo Done!

但是我从 b2 获得下一个输出:

./b2 -j4 -d0 debug release --toolset=gcc --with-thread --with-system --with-filesystem --with-program_options --with-regex --with-date_time --with-iostreams -sZLIB_SOURCE="/home/tim/Рабочий стол/mask-viewer-standalone/MaskLoader/zlib_libraries" link=static runtime-link=static --prefix=./install-dir install
notice: could not find main target стол/mask-viewer-standalone/MaskLoader/zlib_libraries"
notice: assuming it is a name of file to create.

这真是太可怕了!((стол是俄语 Ubuntu 翻译的一部分Desctop- Рабочий стол

所以我想知道 - 我做错了什么 - 如何b2与带有空格的路径交朋友?

答案1

您可以像这样引用 shell 变量:-sZLIB_SOURCE="$WD"/"$ZLIB_ROOT_DIR"。不要对引号进行转义。

相关内容