如何将 libuv 包含在 CMake 中

问题描述 投票:0回答:1

我想将 libuv 包含到我的项目中

我尝试使用find_package但cmake找不到libuv-config.cmake

我应该将源代码复制到项目中,还是继续尝试以其他方式使用find_package?

c++ c cmake libuv
1个回答
1
投票

先安装开发库包:

  • 基于 Debian 的 Linux:
    $ sudo apt-get install libuv1-dev
    
  • macOS:
    $ brew install libuv
    

选项 1: 创建一个

CMakeLists.txt
文件,其中包含:

cmake_minimum_required(VERSION 3.10)
project(libuv-cmake)

find_path(LIBUV_INCLUDE_DIR NAMES uv.h)
find_library(LIBUV_LIBRARIES NAMES uv libuv)

add_executable(main main.cpp)
target_include_directories(main PRIVATE ${LIBUV_INCLUDE_DIR})
target_link_libraries(main ${LIBUV_LIBRARIES})

选项 2: 创建一个

CMakeLists.txt
文件,其中包含:

cmake_minimum_required(VERSION 3.10)
project(libuv-cmake)

find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBUV REQUIRED IMPORTED_TARGET libuv)

add_executable(main main.cpp)
target_include_directories(main PRIVATE ${LIBUV_INCLUDE_DIRS})
target_link_libraries(main PkgConfig::LIBUV)

选项2中,您需要安装

pkg-config

  • 基于 Debian 的 Linux:
    $ sudo apt-get install pkg-config
    
  • macOS:
    $ brew install pkg-config
    

创建

main.cpp
示例文件:

#include <uv.h>

int main() {
    uv_loop_t loop;
    uv_loop_init(&loop);
    uv_run(&loop, UV_RUN_DEFAULT);
}

构建它:

$ mkdir build
$ cd build
$ cmake ..
$ make

测试一下(程序不打印任何内容,但执行时没有错误):

$ ./main
© www.soinside.com 2019 - 2024. All rights reserved.