gpt4 book ai didi

cmake - 当我调用git时,cmake execute_process()总是失败并带有 “No such file or directory”

转载 作者:行者123 更新时间:2023-12-03 10:34:32 34 4
gpt4 key购买 nike

在Linux计算机上,从cmake项目中,我试图使用execute_process调用git,以便可以将源代码控制中的信息包含到我的应用程序中。

我创建了一个小测试来尝试打印git版本:

cmake_minimum_required (VERSION 2.8)

set (git_cmd "/usr/bin/git --version")
#set (git_cmd "ls") # returns success if you uncomment this line
message(STATUS "git cmd: ${git_cmd}")
execute_process(COMMAND ${git_cmd}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE git_result
OUTPUT_VARIABLE git_ver)

message(STATUS "git ver[${git_result}]: ${git_ver}")

configure_file (
"${PROJECT_SOURCE_DIR}/versionInfo.h.in"
"${PROJECT_BINARY_DIR}/versionInfo.h"
)

运行make时,将提供以下输出:
-- git cmd: /usr/bin/git --version
-- git ver[No such file or directory]:
-- Configuring done
-- Generating done
-- Build files have been written to: /home/rsanderson/build/githash:

但是,如果将命令更改为 ls,则结果有效,并且我看到目录列表已打印。我还检查了/ usr / bin中确实存在哪些git。

关于我在这里缺少什么的任何想法?

最佳答案

您必须像这样将参数作为第二个选项传递:

cmake_minimum_required (VERSION 2.8)

set (git_cmd "git")
set (git_arg "--version")
message(STATUS "git cmd: ${git_cmd}")
execute_process(COMMAND ${git_cmd} ${git_arg}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
RESULT_VARIABLE git_result
OUTPUT_VARIABLE git_ver)

message(STATUS "git ver[${git_result}]: ${git_ver}")

关于cmake - 当我调用git时,cmake execute_process()总是失败并带有 “No such file or directory”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6797395/

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