VSCode 找不到包,但 CLion 可以(CMake)

Posted

技术标签:

【中文标题】VSCode 找不到包,但 CLion 可以(CMake)【英文标题】:VSCode cannot find package but CLion can (CMake) 【发布时间】:2021-04-29 21:21:58 【问题描述】:

我想知道在 VSCode 中使用 cmake 和 (compile_commandscompile_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 toolscmake 如果这是你要问的吗? 在 VSCode 中有一个扩展“CMake Tools extension for VS Code”,您可以在其中使用 CMake 构建代码。如果您不这样做并使用默认的 VSCode 设置,则需要使用包含路径配置 tasks.jsonc_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)的主要内容,如果未能解决你的问题,请参考以下文章

clion编译jni,找不到jni.h的解决办法

VScode Solidity 扩展 - 找不到 openzepplin 导入

通过CLion的C ++程序找不到环境变量

如何安装配置clion开发环境

可视代码 - 错误 NU1101:找不到包 Microsoft.EntityFrameworkCore

python在vscode写的相对路径正确但找不到文件