CMake和Visual Studio项目设置

时间:2019-05-08 12:14:07

标签: c++ visual-studio cmake

我正在使用Visual Studio 2019 IDE用c ++编写自己的minecraft启动器。我希望它是一个跨平台项目。我决定为此使用CMake,但是第三方库存在一些问题。

文件结构

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

我在Visual Studio解决方案中链接库方面有一些经验,但是我不知道如何在CMake中实现。

我有两个文件夹:

  1. 包含所有.cpp和.hpp文件的项目(我正在处理的)文件夹。
  2. 所有第三方库的供应商文件夹。

我想将“供应商”中的CMake项目链接到“ MyProject”,以便能够在“ MyProject.cpp”中使用它并进行构建。

用法示例:

'MyProject.hpp':

#pragma once
#include <iostream>
#inlcude "curl/curl.h"

'MyProject.cpp':

int main() {
    // Hello World
    std::cout << "Hello world" << std::endl;
    // Some Curl stuff
    CURL* curl;
    ...
}

我尝试过这样的事情:

add_subdirectory("Vendor/CURL")
include_directories("Vendor/CURL/include")

我是CMake的新手,不知道该怎么做... 我在谷歌上搜索了一个多小时,但没有发现任何东西。 顺便说一句:对不起,我的英语。

1 个答案:

答案 0 :(得分:1)

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

  

我在Visual Studio的链接库方面有一些经验   解决方案,但我不知道如何在CMake中做到这一点。

CMake link_directories映射到VS Properties->Linker->General->Additional Library Directories

CMake target_link_libraries映射到VS Properties->Linker->Input->Additional Dependencies

  

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

看看CMake and Visual Studio,它以示例说明在Visual Studio上下文中的CMake。