英文:
How can I specify the path to Ninja in VS Code CMake configuration without modifying my system's PATH environment variable?
问题
以下是您要翻译的内容:
如您所见,我尝试了几种方法,但都没有成功:
CMakeSettings.json
{
"configurations": [
{
"name": "riscv32",
"generator": "Ninja"
}
]
}
cmake-kits.json
[
{
"name": "riscv32-esp-elf-gcc",
"isTrusted": true,
"compilers": {
"C": "/ProgramData/esp-idf-tools/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/riscv32-esp-elf-gcc.exe",
"CXX": "/ProgramData/esp-idf-tools/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/riscv32-esp-elf-g++.exe"
},
"toolchainFile": "/ProgramData/esp-idf/tools/cmake/toolchain-esp32c3.cmake",
"preferredGenerator": {
"name": "Ninja"
}
}
]
settings.json
{
"cmake.cmakePath": "/ProgramData/esp-idf-tools/tools/cmake/3.24.0/bin/cmake.exe",
"cmake.configureArgs": [
"-DCMAKE_MAKE_PROGRAM=/ProgramData/esp-idf-tools/tools/ninja/1.10.2/ninja.exe"
],
"cmake.buildArgs": [
"-DCMAKE_MAKE_PROGRAM=/ProgramData/esp-idf-tools/tools/ninja/1.10.2/ninja.exe"
],
"cmake.additionalCompilerSearchDirs": [
"/ProgramData/esp-idf-tools/tools/ninja/1.10.2"
]
}
加载时我总是得到以下错误:
[proc] The command: ninja --version failed with error: Error: spawn ninja ENOENT
[proc] The command: ninja-build --version failed with error: Error: spawn ninja-build ENOENT
[main] Unable to determine what CMake generator to use. Please install or configure a preferred generator, or update settings.json, your Kit configuration or PATH variable. Error: No usable generator found.
我希望避免向操作系统的 PATH
添加(又一个)条目。
英文:
As you can see I've tried a few approaches and none work:
CMakeSettings.json
{
"configurations": [
{
"name": "riscv32",
"generator": "Ninja"
}
]
}
cmake-kits.json
[
{
"name": "riscv32-esp-elf-gcc",
"isTrusted": true,
"compilers": {
"C": "/ProgramData/esp-idf-tools/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/riscv32-esp-elf-gcc.exe",
"CXX": "/ProgramData/esp-idf-tools/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin/riscv32-esp-elf-g++.exe"
},
"toolchainFile": "/ProgramData/esp-idf/tools/cmake/toolchain-esp32c3.cmake",
"preferredGenerator": {
"name": "Ninja"
}
}
]
settings.json
{
"cmake.cmakePath": "/ProgramData/esp-idf-tools/tools/cmake/3.24.0/bin/cmake.exe",
"cmake.configureArgs": [
"-DCMAKE_MAKE_PROGRAM=/ProgramData/esp-idf-tools/tools/ninja/1.10.2/ninja.exe"
],
"cmake.buildArgs": [
"-DCMAKE_MAKE_PROGRAM=/ProgramData/esp-idf-tools/tools/ninja/1.10.2/ninja.exe"
],
"cmake.additionalCompilerSearchDirs": [
"/ProgramData/esp-idf-tools/tools/ninja/1.10.2"
]
}
On load I always get
[proc] The command: ninja --version failed with error: Error: spawn ninja ENOENT
[proc] The command: ninja-build --version failed with error: Error: spawn ninja-build ENOENT
[main] Unable to determine what CMake generator to use. Please install or configure a preferred generator, or update settings.json, your Kit configuration or PATH variable. Error: No usable generator found.
I want to avoid adding (yet another) entry to the operating system's PATH
.
答案1
得分: 1
如果您不想修改系统的PATH
环境变量,并且不是通过命令行调用CMake(在这种情况下,我建议您将您的命令包装在cmake -D env
中,以添加到PATH
),并且您正在尝试的方法尚未生效(您可以尝试重置扩展状态,可以使用命令面板中的CMake: Reset CMake Tools Extension State
来执行此操作),那么您可以尝试在CMake工具的cmake.environment
设置中使用${env:...}
VS Code变量。例如:"cmake.environment": { "PATH": "<path-to-your-ninja>${pathSeparator}${env:PATH}" }
。
英文:
If you don't want to modify the system PATH
environment variable, and you're not invoking CMake via commandline (in which case I'd suggest you wrap your commands with cmake -D env
to prepend to the PATH
), and what you're trying isn't already working (you might want to try resetting the extensions state, which you can do with the CMake: Reset CMake Tools Extension State
in the command palette), then you can try using ${env:...}
VS Code variables in CMake tools' cmake.environment
setting. Ex. "cmake.environment": { "PATH": "<path-to-your-ninja>${pathSeparator}${env:PATH}" }
.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论