gpt4 book ai didi

cmake - 将带空格的参数传递给 CMake ExternalProject_Add BUILD_COMMAND

转载 作者:行者123 更新时间:2023-12-04 15:29:52 61 4
gpt4 key购买 nike

我正在尝试使用 CMake 的 ExternalProject_Add(...) 在 Linux 中交叉编译 bzip2命令。

但是,为了交叉编译 libbzip,您必须修改一些 Makefile 宏来执行构建。这是我当前的交叉编译变量:

set(bzlib_CROSS CC=${CROSS_PREFIX}gcc AR=${CROSS_PREFIX}ar RANLIB=${CROSS_PREFIX}ranlib LDFLAGS=-L${bzlib_MINGW_SRC}/lib CFLAGS=-Wall -Winline -O2 -g -I${bzlib_MINGW_SRC}/include)

然后将此变量用于构建命令
set(bzlib_BUILD make ${bzlib_CROSS} PREFIX=${DEPENDENCY_DIR})

CMake 错误,因为它试图将 -O2、-g 等传递给 make ,这当然不起作用,但是当我尝试在 CFLAGS 周围添加引号时它说的变量
cc1: error: unrecognized command line option '-Wall -Winline -O2 -g -I/long/path/here/include'

是否可以使用 CMake 的 BUILD_COMMAND 设置带有空格的 Makefile 宏?谢谢!

最佳答案

想通了......我需要像这样将引用的字符串拆分成它自己的变量

set(bzlib_CFLAGS "-Wall -Winline -O2 -g -I${bzlib_MINGW_SRC}/include")
set(bzlib_CROSS CC=${CROSS_PREFIX}gcc AR=${CROSS_PREFIX}ar RANLIB=${CROSS_PREFIX}ranlib LDFLAGS=-L${bzlib_MINGW_SRC}/lib CFLAGS=${bzlib_CFLAGS})

这有效!

关于cmake - 将带空格的参数传递给 CMake ExternalProject_Add BUILD_COMMAND,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8144357/

61 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com