gpt4 book ai didi

cmake - Clion、cMake 和 POCO

转载 作者:行者123 更新时间:2023-12-01 08:13:36 25 4
gpt4 key购买 nike

我是 c++ 和 cmake 的新手。我决定测试 cLion 和 cMake。我正在尝试为命令行编写一个简单的电子邮件客户端。其他消息来源告诉我,实现 POP3 和 SMTP 功能的最佳方法是使用 POCO。不幸的是,cMake 给我带来了麻烦。 CLion 自带的版本是 3.2 但我的机器运行的版本是 2.8。

~$ cmake --version
cmake version 2.8.12.2

第一个问题。我认为我可以通过安装 POCO 并做与我用于 openssl 相同的事情来绕过它,我也必须下载它。

cMakeList.txt:
cmake_minimum_required(VERSION 3.0)
project(Email_Reader)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

#included paths for openssl and POCO.

INCLUDE_DIRECTORIES("/usr/include/openssl")
INCLUDE_DIRECTORIES("/usr/local/include/Poco/Net")

set(SOURCE_FILES main.cpp)
add_executable(Email_Reader ${SOURCE_FILES})

POCO 的文档告诉我,我至少需要 3.0 才能工作,但我觉得我的机器上有 2 个不同的 cMake。你能帮我吗?

最佳答案

您可以从以下位置获取最新的 CMake 版本:http://www.cmake.org/download/

对于 Linux,它是这个存档:http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz

使用它的一种简单方法是将提取的文件放在 /opt/cmake/cmake-3.2 中。然后创建以下别名(例如在 ~/.bash_aliases 中:

alias ccmake3='/opt/cmake/cmake-3.2/bin/ccmake'
alias cmake3='/opt/cmake/cmake-3.2/bin/cmake'
alias cmake3-gui='/opt/cmake/cmake-3.2/bin/cmake-gui'
alias cpack3='/opt/cmake/cmake-3.2/bin/cpack'
alias ctest3='/opt/cmake/cmake-3.2/bin/ctest'

然后,确保您已正确构建和安装 POCO。
Getting Started页面包含您执行此操作所需的所有信息。但是,基本上,您应该获得来源 from here并将它们提取到某个地方:

wget http://pocoproject.org/releases/poco-1.6.0/poco-1.6.0.tar.gz
tar xvfz poco-1.6.0.tar.gz
cd poco-1.6.0
mkdir -p cmake_build cmake_install/debug cmake_install/release
cd cmake_build
cmake3-gui ..

在 CMake 3 GUI 中,按 Configure .在新窗口中,保持默认选项 Unix Makefiles然后点击 Finish .应该会出现一条错误消息(这很好),单击 Ok .

Debug版本,设置如下:
CMAKE_BUILD_TYPE     : Debug
CMAKE_INSTALL_PREFIX : the absolute path to "cmake_install/debug"

为了让您快速开始使用 POCO,请取消选中所有选项,除了以下选项,它们必须是 启用 :
ENABLE_JSON
ENABLE_NET
ENABLE_UTIL
ENABLE_XML
POCO_STATIC

(如果需要,您可以稍后考虑其他选项......)

退出 GUI,然后构建/安装 POCO:

make clean
make -j8
make install

现在,POCO 应该安装在 cmake_install/debug .要构建/安装其他版本,只需执行相同的步骤,但替换 DebugCMAKE_BUILD_TYPERelease , RelWithDebInfoMinSizeRel (参见 CMake's doc )(另外,您必须更改安装目录)

最后,您可以在 C++ 项目中使用 POCO。

例如,您的 CMakeLists.txt应该是这样的:
cmake_minimum_required(VERSION 3.0)

project(Email_Reader)

# define the project
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
add_executable(Email_Reader ${SOURCE_FILES})

# set the POCO paths and libs
set(POCO_PREFIX "/path/to/cmake_install/debug") # the directory containing "include" and "lib"
set(POCO_INCLUDE_DIR "${POCO_PREFIX}/include")
set(POCO_LIB_DIR "${POCO_PREFIX}/lib")
set(POCO_LIBS "${POCO_LIB_DIR}/libPocoNetd.a"
"${POCO_LIB_DIR}/libPocoUtild.a"
"${POCO_LIB_DIR}/libPocoJSONd.a"
"${POCO_LIB_DIR}/libPocoXMLd.a"
"${POCO_LIB_DIR}/libPocoFoundationd.a"
"pthread")

# set the include path for the app
target_include_directories(Email_Reader PRIVATE "${POCO_INCLUDE_DIR}")
# link the app against POCO
target_link_libraries(Email_Reader "${POCO_LIBS}")

关于cmake - Clion、cMake 和 POCO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30114662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com