繁体   English   中英

如何在 Visual Studio Code 的 C++ 项目中使用外部库

[英]How to use external libraries in a C++ project in Visual Studio Code

我对此很陌生,所以请耐心等待。 我一直试图弄清楚在 vs 代码中在 c++ 中启动项目的基础知识,但我不知道如何使用外部库。 为了进行实验,我有一个简单的设置,只有一个 HelloWorld.cpp 文件以及 tasks.json 和 c_cpp_properties.json 文件。 我通过创建一个 HelloWorld 可执行文件来运行该文件。

我已经研究过使用 vcpkg 并且我已经完成了设置它的所有步骤(包括集成),但我似乎无法让它工作。 作为测试,我正在尝试使用“opencv2”库,但是如果我尝试在 HelloWorld.cpp 文件的顶部使用#include <opencv2/opencv2.hpp> ,我只会收到一条错误消息,指出该文件不能成立。

这是我的 c_cpp_properties.json 文件的样子:

{
"configurations": [
    {
        "name": "Mac",
        "includePath": [
            "${default}"
        ],
        "defines": [],
        "macFrameworkPath": [],
        "compilerPath": "/usr/bin/clang++",
        "cStandard": "gnu17",
        "intelliSenseMode": "${default}"
    }
],
"version": 4
}

这是我的任务。json:

{
"version": "2.0.0",
"tasks": [
    {
        "type": "cppbuild",
        "label": "C/C++: clang++ build active file",
        "command": "/usr/bin/clang++",
        "args": [
            "-std=c++17",
            "-stdlib=libc++",
            "-g",
            "${file}",
            "-o",
            "${fileDirname}/${fileBasenameNoExtension}"
        ],
        "options": {
            "cwd": "${workspaceFolder}"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "detail": "compiler: /usr/bin/clang++"
    }
]
} 

最后是 HelloWorld.cpp:

#include <iostream>
#include <stdio.h>
#include <opencv2/opencv2.hpp>

using namespace std;

int main() {
    cout << "\n Hello World \n";
    return 0;
}

我已经做了很多尝试添加不同的 includePaths 等,但没有运气。 但是,我认为 vcpkg 声称,通过使用用户范围的集成,不需要指定 includePaths? 我认为一定有一些非常简单的东西我错过了,但我似乎无法弄清楚它是什么。 谢谢你的帮助!

*刚刚编辑了问题,因为我意识到问题与我的想法略有不同

当您运行命令编译代码时,您可以将库的实际路径传递给编译器,以便它可以找到所需的文件。 例如,查看以下命令。

clang++ HelloWorld.cpp -I/path to the opencv include folder/include -L/path to the opencv lib folder/lib -o output

如果您按照他们的文档正确使用 cmake 安装了 OpenCV,则不需要像这样显式传递路径,因为编译器将能够找到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM