VSCode 找不到包,但 CLion 可以(CMake)
Posted
技术标签:
【中文标题】VSCode 找不到包,但 CLion 可以(CMake)【英文标题】:VSCode cannot find package but CLion can (CMake) 【发布时间】:2021-04-29 21:21:58 【问题描述】:我想知道在 VSCode 中使用 cmake
和 (compile_commands
和 compile_flags
) 有什么区别?我遇到了一个问题,即使我的 CMake 设置正确(在 Clion 上构建得很好),我在尝试在 VSCode 中使用完全相同的代码时遇到了问题。
我有下面的违规行
#include "palisade.h"
palisade
安装在 "/usr/local/include/palisade"
中,我的 CMake 明确查找并找到它
find_package(Palisade)
我还生成了文件compile_commands.json
通过cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1
但我仍然遇到找不到库的问题
【问题讨论】:
也许您的默认包含路径不包含/usr/local/include
您是使用“CMake Tools extension for VS Code”将 CMake 与 VSCode 一起使用,还是您是如何在 VSCode 中设置代码的?
当然,但是在我的配置中没有提到它位于/usr/local/include/
:/
我在clion中设置的?对不起,我不完全理解这个问题。我已经安装了 cmake tools
和 cmake
如果这是你要问的吗?
在 VSCode 中有一个扩展“CMake Tools extension for VS Code”,您可以在其中使用 CMake 构建代码。如果您不这样做并使用默认的 VSCode 设置,则需要使用包含路径配置 tasks.json
和 c_cpp_properties.json
,使用包含要链接的文件夹和库的链接器设置配置 taks.json
。
【参考方案1】:
可能会有帮助。
在主 CMakeLists.txt 添加行
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
在 c_cpp_properties.json 中
"compileCommands": "$workspaceFolder/build/compile_commands.json"
这将允许 InteliSence 使用 cmake 创建的依赖项。
【讨论】:
以上是关于VSCode 找不到包,但 CLion 可以(CMake)的主要内容,如果未能解决你的问题,请参考以下文章
VScode Solidity 扩展 - 找不到 openzepplin 导入