Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
科马克公司;Visual Studio项目设置 我在Visual Studio 2019 IDE中用C++编写MieCraveAccess。我希望它是一个跨平台的项目。我决定使用CMake来实现这一点,但我在第三方库方面遇到了一些问题_C++_Visual Studio_Cmake - Fatal编程技术网

科马克公司;Visual Studio项目设置 我在Visual Studio 2019 IDE中用C++编写MieCraveAccess。我希望它是一个跨平台的项目。我决定使用CMake来实现这一点,但我在第三方库方面遇到了一些问题

科马克公司;Visual Studio项目设置 我在Visual Studio 2019 IDE中用C++编写MieCraveAccess。我希望它是一个跨平台的项目。我决定使用CMake来实现这一点,但我在第三方库方面遇到了一些问题,c++,visual-studio,cmake,C++,Visual Studio,Cmake,文件结构 root |---MyProject | |---build | | |---Debug | | |---Release | |---include | | |---MyProject.hpp | |---src | | |---MyProject.cpp | | |---CMakeLists.txt | |---CMakeLists.txt |---Vendor | |---CURL | | |--- // sour

文件结构

root
|---MyProject
|   |---build
|   |   |---Debug
|   |   |---Release
|   |---include
|   |   |---MyProject.hpp
|   |---src
|   |   |---MyProject.cpp
|   |   |---CMakeLists.txt
|   |---CMakeLists.txt
|---Vendor
|   |---CURL
|   |   |--- // source downloaded from https://curl.haxx.se/download/curl-7.64.1.tar.gz
|   |---CMakeLists.txt
|---CMakeLists.txt
我有一些在VisualStudio解决方案中链接库的经验,但我不知道如何在CMake中实现

我有两个文件夹:

  • 包含所有.cpp和.hpp文件的我的项目(我正在处理)文件夹
  • 所有第三方LIB的供应商文件夹
  • 我想将“供应商”中的CMake项目链接到“MyProject”,以便能够在“MyProject.cpp”中使用它并构建它

    用法示例:

    “MyProject.hpp”:

    #pragma once
    #include <iostream>
    #inlcude "curl/curl.h"
    
    我是CMake的新手,不知道怎么做。。。 我在谷歌上搜索了一个多小时,但什么也没找到。
    顺便说一句:对不起,我说的是英语。

    要链接到第三方库,您需要指定库的路径和名称

    我有一些在VisualStudio中链接库的经验 解决方案,但我不知道如何在CMake中实现

    CMake
    link\u目录
    映射到VS
    Properties->Linker->General->其他库目录

    CMake
    target\u link\u库
    映射到VS
    Properties->Linker->Input->其他依赖项

    我是CMake的新手,不知道怎么做


    通过一个例子来了解在Visual Studio环境中如何解释CMake。

    您是否使用target_link_libraries()将供应商项目链接到MyProject?尽管这不是您问题的一部分,但我想指出,不应使用include_directories()。若在CMake中正确设置了CURL(我不知道,我从未使用过它),那个么target_link_libraries()应该负责包含目录。在我看来,这是一篇关于CMake的精彩演讲,也是为什么你不应该使用include_directories():@Lehks好的,谢谢,我会看的。
    int main() {
        // Hello World
        std::cout << "Hello world" << std::endl;
        // Some Curl stuff
        CURL* curl;
        ...
    }
    
    add_subdirectory("Vendor/CURL")
    include_directories("Vendor/CURL/include")