gpt4 book ai didi

json - launch.json args 字段中的 Visual Studio Community 2017 空间

转载 作者:行者123 更新时间:2023-12-03 23:17:07 27 4
gpt4 key购买 nike

我目前正在尝试为 Visual Studio Community 2017 中基于 CMake 的项目设置调试启动参数。通常这将通过 launch.vs.json 文件完成。但是,我需要传递的参数中包含空格。例如,下面的launch.vs.json 文件应该将argumentmnts FIRST ARGUMENT 和SECOND ARGUMENT 作为第一个和第二个参数传递。然而,程序最终得到 4 个参数:FIRST、ARGUMENT、SECOND 和 ARGUMENT。我已经尝试了各种不同的空格编码,但无法在结果参数中正确编码空格。这尤其成问题,因为我的程序的参数之一是 C:\Program Files 中的路径。因此,路径被分成 2 个独立的参数,而不是应该是一个。如何让 Visual Studio 在参数中允许空格?

作为引用,使用此命令通过命令行启动按预期工作:

argtest.exe "FIRST ARGUMENT" "SECOND ARGUMENT"

启动.vs.json
{
"version": "0.2.1",
"defaults": {},
"configurations": [
{
"type": "default",
"project": "CMakeLists.txt",
"projectTarget": "argtest.exe",
"name": "argtest.exe",
"args": ["FIRST ARGUMENT", "SECOND ARGUMENT"]
}
]
}

测试.c
#include <stdio.h>
int main(int argc, char ** argv) {
int i;
for (i = 0; i < argc; i++)
printf("%d = %s\n", i, argv[i]);
return 0;
}

CMakeLists.txt
cmake_minimum_required (VERSION 2.8.8)
project (argtest)
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/ )
add_executable(argtest test.c)

最佳答案

您需要在 args 字符串中包含引号并对其进行转义。例如:

{
"version": "0.2.1",
"defaults": {},
"configurations": [
{
"type": "default",
"project": "CMakeLists.txt",
"projectTarget": "argtest.exe",
"name": "argtest.exe",
"args": ["\"FIRST ARGUMENT\"", "\"SECOND ARGUMENT\""]
}
]
}

关于json - launch.json args 字段中的 Visual Studio Community 2017 空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48709019/

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