首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在externalproject_add中设置命令参数

如何在externalproject_add中设置命令参数
EN

Stack Overflow用户
提问于 2016-12-12 18:44:06
回答 1查看 1.6K关注 0票数 2

我想创建一个cmake脚本来在我的项目中自动构建zlib。

我添加了

代码语言:javascript
运行
复制
externalproject_add(zlib
  PREFIX .
  # download step
  GIT_REPOSITORY git@github.com:madler/zlib.git
  GIT_TAG v1.2.8
  # configure step
  SOURCE_DIR zlib
  CONFIGURE_COMMAND ${CMAKE_SOURCE_DIR}/build/zlib/zlib/configure --archs="-arch ${ARCH}" --static
  # build step
  BUILD_COMMAND make
  BUILD_IN_SOURCE 1
  # install step
  INSTALL_DIR zlib-${ARCH}
  INSTALL_COMMAND make install
  # logging
  LOG_CONFIGURE 1
  LOG_BUILD 1
  LOG_INSTALL 1
  )

但它会生成如下配置命令:

代码语言:javascript
运行
复制
'/Users/david/Documents/cmake_projects/build/zlib/zlib/configure' '--archs=' '-arch' 'x86_64"' '--static"'

我认为这是不恰当的引用。

我尝试了许多技巧,但我不能让命令工作。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 21:43:56

双引号可防止字符串被拆分。我还将至少将${ARCH_PARAMS}参数分离为单独的变量,因此,您会得到如下所示:

代码语言:javascript
运行
复制
set(ARCH_PARAMS "--archs='-arch ${ARCH}'")
...
...
CONFIGURE_COMMAND ${CMAKE_SOURCE_DIR}/build/zlib/zlib/configure ${ARCH_PARAMS} --static

因此,它将以如下方式通过:

'/tmp/so_test/build/zlib/zlib/configure‘'--archs='-arch x64_86 '--static’

另外,zlib配置看起来有点可疑,因为它一直在抱怨编译器错误报告:

静态$./

-arch --archs="-arch x86_64“

寻找gcc..。

编译器错误报告对于./configure (可能删除-Werror)来说太苛刻了。

** ./配置中止。

相关问题:

cmake: How to include literal double-quote in custom command?

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41099029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档