如何解决如何使用CMake Tools插件配置复杂的项目?
我正在尝试配置vscode以使用CMake Tools插件开发llvm / mlir项目。 该项目很大,需要将此配置传递给命令行:
git clone https://github.com/llvm/llvm-project.git
mkdir llvm-project/build
cd llvm-project/build
cmake -G Ninja ../llvm \
-DLLVM_ENABLE_PROJECTS=mlir \
-DLLVM_BUILD_EXAMPLES=ON \
-DLLVM_TARGETS_TO_BUILD="X86;NVPTX;AMDGPU" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_LLD=ON \
-DPYTHON_EXECUTABLE=python3
我试图将此信息添加到.vscode/settings.json
:
{
"cmake.sourceDirectory": "${workspaceFolder}/llvm","cmake.configureArgs": [
"-DLLVM_ENABLE_PROJECTS=mlir","-DLLVM_BUILD_EXAMPLES=ON","-DLLVM_TARGETS_TO_BUILD='X86;NVPTX;AMDGPU'","-DCMAKE_BUILD_TYPE=Release","-DLLVM_ENABLE_ASSERTIONS=ON","-DCMAKE_C_COMPILER=clang","-DCMAKE_CXX_COMPILER=clang++","-DLLVM_ENABLE_LLD=ON","-DPYTHON_EXECUTABLE=python3",]
}
但是配置不成功,似乎没有检测到我的参数。
[main] Configuring folder: llvm-project
[proc] Executing command: /usr/bin/cmake --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/bin/clang-10 -DCMAKE_CXX_COMPILER:FILEPATH=/bin/clang++-10 -H${HOME}/Development/mlir/llvm-project/mlir -B${HOME}/Development/mlir/llvm-project/build -G Ninja
[cmake] Not searching for unused variables given on the command line.
[cmake] CMake Warning (dev) in CMakeLists.txt:
[cmake] No project() command is present. The top-level CMakeLists.txt file must
[cmake] contain a literal,direct call to the project() command. Add a line of
[cmake] code such as
[cmake]
[cmake] project(ProjectName)
[cmake]
[cmake] near the top of the file,but after cmake_minimum_required().
[cmake]
[cmake] CMake is pretending there is a "project(Project)" command on the first
[cmake] line.
[cmake] This warning is for project developers. Use -Wno-dev to suppress it.
[cmake]
[cmake] -- The C compiler identification is Clang 10.0.0
[cmake] -- The CXX compiler identification is Clang 10.0.0
[cmake] -- Check for working C compiler: /bin/clang-10
[cmake] -- Check for working C compiler: /bin/clang-10 -- works
[cmake] -- Detecting C compiler ABI info
[cmake] -- Detecting C compiler ABI info - done
[cmake] -- Detecting C compile features
[cmake] -- Detecting C compile features - done
[cmake] -- Check for working CXX compiler: /bin/clang++-10
[cmake] -- Check for working CXX compiler: /bin/clang++-10 -- works
[cmake] -- Detecting CXX compiler ABI info
[cmake] -- Detecting CXX compiler ABI info - done
[cmake] -- Detecting CXX compile features
[cmake] -- Detecting CXX compile features - done
[cmake] CMake Warning (dev) at CMakeLists.txt:26 (if):
[cmake] Policy CMP0057 is not set: Support new IN_LIST if() operator. Run "cmake
[cmake] --help-policy CMP0057" for policy details. Use the cmake_policy command to
[cmake] set the policy and suppress this warning.
[cmake]
[cmake] IN_LIST will be interpreted as an operator when the policy is set to NEW.
[cmake] Since the policy is not set the OLD behavior will be used.
[cmake] This warning is for project developers. Use -Wno-dev to suppress it.
[cmake]
[cmake] CMake Error at CMakeLists.txt:26 (if):
[cmake] if given arguments:
[cmake]
[cmake] "NVPTX" "IN_LIST" "LLVM_TARGETS_TO_BUILD"
[cmake]
[cmake] Unknown arguments specified
[cmake]
[cmake]
[cmake] CMake Warning (dev) in CMakeLists.txt:
[cmake] No cmake_minimum_required command is present. A line of code such as
[cmake]
[cmake] cmake_minimum_required(VERSION 3.16)
[cmake]
[cmake] should be added at the top of the file. The version specified may be lower
[cmake] if you wish to support older CMake versions for this project. For more
[cmake] information run "cmake --help-policy CMP0000".
[cmake] This warning is for project developers. Use -Wno-dev to suppress it.
[cmake]
[cmake] -- Configuring incomplete,errors occurred!
[cmake] See also "${HOME}/Development/mlir/llvm-project/build/CMakeFiles/CMakeOutput.log".
如何将配置行转换为CMake Tools插件可以理解的内容?
编辑:调整了错误消息
EDIT2:
修改.vscode/settings.json
以使用cmake.configureSettings
不能解决问题:
{
"cmake.sourceDirectory": "${workspaceFolder}/llvm","cmake.configureSettings": {
"LLVM_ENABLE_PROJECTS" : "mlir","LLVM_BUILD_EXAMPLES" : "ON","LLVM_TARGETS_TO_BUILD" : "\"X86;NVPTX;AMDGPU\"","CMAKE_BUILD_TYPE" : "Release","LLVM_ENABLE_ASSERTIONS" : "ON","CMAKE_C_COMPILER" : "clang","CMAKE_CXX_COMPILER" : "clang++","LLVM_ENABLE_LLD" : "ON","PYTHON_EXECUTABLE" : "python3",}
}
解决方法
我发现了问题/可能的错误。
vscode和CMake Tools插件似乎缓存了一些文件,并且即使您删除了构建文件夹(包含CMakeCache.txt),该项目也不使用在{{1 }}。
所以,要使我的项目正常工作。
- 我将此信息添加到了
.vscode/settings.json
:
.vscode/seetings.json
- 已关闭vscode
- 删除了构建文件夹
- 打开了vscode
- 回答是:“您要配置项目'llvm-project'吗?”
配置成功。
现在您可以使用vscode选择目标了。
不幸的是,每次打开vscode时,CMake插件都会触发新配置,但最好在另一个问题/论坛中解决此问题。
,在 .vscode/seetings.json
中,使用数组语法来指定多个选项。例如,
{
"cmake.sourceDirectory": "${workspaceFolder}/llvm","cmake.configureSettings": {
//...
"LLVM_TARGETS_TO_BUILD" : ["X86","NVPTX","AMDGPU"],//...
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。