我需要使用 编译 boost 库ExternalProject_Add
,并且构建命令需要使用 Clang 在 MacOS 平台上使用 c++11 标志。
该命令应如下所示:
./bin/b2 debug release cxxflags="-std=c++11 -stdlib=libc++" linkflags=-stdlib=libc++
但我对引号和空格有疑问。
set(BOOST_CXX_FLAGS cxxflags="-std=c++11 -stdlib=libc++")
set(BOOST_TOOL_SET toolset=clang ${BOOST_CXX_FLAGS}
linkflags=-stdlib=libc++)
ExternalProject_Add(boost
....
BUILD_COMMAND ./bin/b2 debug release
${BOOST_TOOL_SET}
....
)
该${BOOST_TOOL_SET}
值是一个列表,并且cxxflags="-std=c++11
-stdlib=libc++"
是其中的一项。生成的命令行变得奇怪:
./bin/b2 debug release "cxxflags=\"-std=c++11 -stdlib=libc++\""
linkflags=-stdlib=libc++
当 CMake 检测到参数内的空格并用引号将其包裹时,似乎该标志是由 CMake 翻译的,但这不是我想要的。
我在互联网上搜索,但没有找到任何帮助。关于这个问题有什么提示吗?