如何使用conan和cmake添加c++ poco库?

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

我是 conan 的新手,我想使用 cmake 将 poco 库添加到我的项目中。 我使用以下方式安装了 poco 1.13.0:

$ conan install . --output-folder=build --build=missing
.

然后我使用了新的工具链:

$ cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release

最后,我尝试将 poco 标头添加到我的代码中,但出现构建错误:没有这样的文件或目录。我使用 CLion、CMake 3.28.1 和 Conan 2.0.17。我做错了什么?

CMakeLists.txt:

cmake_minimum_required(VERSION 3.27)
project(poco_test)

include_directories(build)

find_package(Poco REQUIRED)

add_executable(poco_test main.cpp)

target_link_libraries(${PROJECT_NAME} PRIVATE Poco::Poco)

conanfile.txt:

[requires]
poco/1.13.0

[generators]
CMakeDeps
CMakeToolchain

main.cpp:

#include <iostream>
#include "Poco/Exception.h"

int main() {
    return 0;
}
c++ cmake poco-libraries conan
1个回答
0
投票

我刚刚在 Ubuntu 22.04 上使用 g++13.1.0 和 CMake 3.28.3 测试了您的设置,无需任何修改即可运行。我能够构建并运行编译后的目标。

根据您的描述(“没有这样的文件或目录”),编译器似乎没有 Poco 标头的包含路径。

在指定可执行文件后,您可以在 CMakeLists.txt 中添加:

target_include_directories(${PROJECT_NAME} PRIVATE ${Poco_INCLUDE_DIRS})

问:我如何找到 Poco_INCLUDE_DIRS?

A:查看在 conan 安装期间创建的 poco 的 CMake 文件,即:

PocoConfig.cmake
以及之后的
Poco-release-x86_64-data.cmake

© www.soinside.com 2019 - 2024. All rights reserved.