C++ fmt 库安装不起作用

C++ fmt 库安装不起作用

我是一个新的 C++ 用户,在程序中安装外部库时遇到了一些问题。目前,我正在尝试安装格式库。我下载了存储库内容并将其解压。然后我将子目录添加fmtusr/include/fmt,但不起作用。我还尝试将其添加fmtusr/local/include,也没有成功。以下是示例代码和返回的相应错误:

#include <iostream>
#include <string>
#include <format.h> // I also tried include <fmt/format.h>

using namespace std;

int main(){
   string s = fmt::format("{0}{1}{0}", "abra", "cad");
   cout<< s<<endl;
   return 0;
}

错误:

stack.cpp:3:10: fatal error: format.h: No such file or directory
 #include <format.h>
          ^~~~~~~~~~
compilation terminated

我注意到,在使用fmt以下命令传输文件夹后,该文件夹已“关闭”(标有“X”)usr/~

cp fmt-master/include/fmt usr/local/include/fmt

我尝试使用以下命令更改文件夹权限:

sudo chmod -rwx usr/local/include/fmt

但即使这样也不起作用。命令运行时没有输出,fmt文件夹继续显示 X 标记。我想知道 1) 将库文件夹保存/usr/include在 C++ 中安装外部库的标准程序是什么?(对我来说这看起来太手动了)2) 我在这里做错了什么?

答案1

大多数软件包和库不需要在 Ubuntu 上手动下载和安装。您可以libfmt-dev使用官方的“universe”存储库进行安装apt

运行以下命令进行安装:

sudo add-apt-repository universe
sudo apt update
sudo apt install libfmt-dev

Ubuntu 存储库中的大多数“构建”类型包末尾都有“dev”后缀。十有八九,当您需要安装一些先决条件或依赖项来使用 g++ 或 C++ 构建东西时,这些就是您需要的“lib”包。

要搜索可用的包,您可以使用apt-cache search如下示例中的命令:

apt-cache search libfmt

如果获得的结果太多,可以通过管道命令grep缩小结果范围,如下所示:

apt-cache search libfmt | grep dev

或者像这样:

apt-cache search fmt | grep 'C+'

或者您可以使用-i标志grep以使其不区分大小写,如下所示:

apt-cache search fmt | grep -i 'c+'

相关内容