繁体   English   中英

如何打印; 符号使用CMake命令?

[英]How to print a ; symbol using CMake command?

我正在将Boost构建为CMake下的ExternalProject 我想交叉编译。 为此,我尝试using gcc : arm : arm-linux-gnueabi ;编写using gcc : arm : arm-linux-gnueabi ; 在构建步骤之前转到user-config.jam。

但是,它似乎拒绝打印; 符号。 我只能假设这是由于CMake将命令传递给Shell造成的某种破坏。 我尝试使用sed内联编辑project-config.jam,但结果相同。 现在,我尝试将行echo显到user-config.jam。

这是我在CMakeLists.txt中的ExternalProject命令:

ExternalProject_Add(Boost
    URL https://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/downloads/boost_1_59_0
    BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/downloads/boost_1_59_0
    UPDATE_COMMAND ""
    PATCH_COMMAND ""

    CONFIGURE_COMMAND ./bootstrap.sh --prefix="${CMAKE_BINARY_DIR}/boost_1_59_0" --without-icu
    COMMAND echo using gcc : arm : arm-linux-gnueabi > ./user-config.jam
    COMMAND echo ; >> ./user-config.jam
    BUILD_COMMAND "./b2"
    INSTALL_COMMAND ./b2 install toolset=gcc-arm --prefix=${CMAKE_CURRENT_SOURCE_DIR}/deps/boost
    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/deps/boost
)

详细的CMake打印:

cd /home/matthew/Desktop/arm/downloads/boost_1_59_0 && echo using gcc : arm : arm-linux-gnueabi > ./user-config.jam
cd /home/matthew/Desktop/arm/downloads/boost_1_59_0 && echo >> ./user-config.jam

您会看到它可以将using ... gnueabi行打印到user-config.jam。 但是,它似乎可以治疗; 作为空字符。 当我在;周围使用单引号和双引号时,它执行相同的操作; 性格也是如此。

分号是cmake的列表定界符。 CMake 2.8.11及更高版本具有特殊的$令牌:

COMMAND echo $<SEMICOLON> >> ./user-config.jam

附带说明一下,您可以使用cmake -E <command>使cmake配置更独立于平台:

COMMAND ${CMAKE_COMMAND} -E echo ...

对于回显来说可能并不重要,对于其他功能(创建/删除目录),需要牢记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM