在 C++ Ubuntu 中安装 FTP 客户端(库)

Posted

技术标签:

【中文标题】在 C++ Ubuntu 中安装 FTP 客户端(库)【英文标题】:Installing FTP Client (Library) in C++ Ubuntu 【发布时间】:2021-10-26 10:43:10 【问题描述】:

我在 GitHub 上找到了这个库 https://github.com/embeddedmz/ftpclient-cpp,但如何在 Linux(Ubuntu) 上安装它却非常晦涩。

您将需要 CMake 为静态库生成 makefile 或 构建测试/代码覆盖程序。还要确保你有 已安装 libcurl 和 Google Test。

你可以按照这个脚本 https://gist.github.com/fideloper/f72997d2e2c9fbe66459 安装 libcurl.

本教程将帮助您在 Ubuntu 上正确安装 Google Test: https://www.eriksmistad.no/getting-started-with-google-test-on-ubuntu/

位于树中的 CMake 脚本将为 创建静态库和单元测试程序。

要创建调试静态库和测试二进制文件,请更改目录 到包含第一个 CMakeLists.txt 和的那个:

mkdir build    
cd build    
cmake .. -DCMAKE_BUILD_TYPE:STRING=Debug
make

我不清楚“包含第一个 CMakeLists.txt 的那个”指的是什么。它是Gtest中的那个吗?卷曲的那个?还是什么?

在尝试两个(Gtest 和 Curl 中的 Cmake)后,我仍然收到错误:“No such file or directory”,同时尝试 #include "FTPClient.h" 。

更新:

列出我在做什么:

我做了git clone https://github.com/embeddedmz/ftpclient-cpp.git 然后创建了构建文件夹,导航到它,我尝试了cmake .. -DCMAKE_BUILD_TYPE:STRING=Debug(这是我插入的文字命令),我得到了

CmakeLists.txt 中的 Cmake 错误:27 (add_subdirectory): add_subdirectory given source "TestFTP" which is not an existing directory

那么到目前为止有什么问题?

【问题讨论】:

项目的根目录。包含 .gitignore 和 .clang-format 的那个。 "我在尝试 #include "FTPClient.h"" 时仍然遇到错误" - 请显示(包括在问题帖子中)您正在使用的确切命令和您收到的确切错误消息。 【参考方案1】:

构建库后,您的构建树中会生成一个libftpclient.a

您可以按如下方式将其安装到您的系统中: 在这种情况下,将libftpclient.a复制到/usr/local/lib,将FTP中的两个头文件复制到/usr/local/include。 然后,您应该能够通过添加 -I/usr/local/include 标志来包含头文件,并通过添加 -L/usr/local/lib -lftpclient 来包含链接。

【讨论】:

我确实构建了 Gtest 和 Curl,但没有关于我应该在我的项目目录中的 CMakeLists.txt 中放置什么的说明。关于libftpclient.a即使从“/”搜索也找不到。我认为他们应该更好地为初学者指定安装过程(使用不到2周的Linux)。 如果你的项目也在使用 CMake,只需将 ftpclient-cpp 目录移动到项目的源目录下,include()'ing 目录,并将你的主要目标与 target_link_libraries(main ftpclient) 链接就足够了。 我刚刚下载并使用mkdir build; cd build; cmake ..; cmake --build . 构建了库,并生成了libftpclient.a。我不会说缺少安装说明;这只是基本的 CMake。不要气馁;学习曲线很陡,但会变得更好。 我做了git clone https... 然后创建了build 文件夹,导航到它,我尝试了cmake .. -DCMAKE_BUILD_TYPE:STRING=Debug(这是我插入的文字命令),我在CmakeLists.txt 处得到>Cmake 错误: 27 (add_subdirectory): add_subdirectory 给定源“TestFTP”,它不是现有目录。 您的 source 目录是您使用 git clone 克隆的树。构建目录应该直接在它下面创建。您需要从该构建目录中运行cmake ..,这样.. 指的是源目录。如果你按照你所说的去做,我不知道你怎么会得到这些错误消息。

以上是关于在 C++ Ubuntu 中安装 FTP 客户端(库)的主要内容,如果未能解决你的问题,请参考以下文章

在Ubuntu/Linux中安装FTP

ubuntu中安装ftp服务器

Ubuntu中安装FTP 服务器自己踩得坑

Ubuntu中安装配置和卸载FTP(转)

如何在 Ubuntu 中安装 QGit 客户端

ubuntu中安装qgit工具-(转自Linux中国)