Luc*_*cas 5 permissions command-line c++ libraries
我是一个新的 C++ 用户,在我的程序中安装外部库时遇到了一些问题。目前,我正在尝试安装fmt库。我下载了存储库内容并将其解压缩。然后我将 de 子目录添加fmt到usr/include/fmt,这不起作用。我也试过 add fmtto usr/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;
}
Run Code Online (Sandbox Code Playgroud)
错误:
stack.cpp:3:10: fatal error: format.h: No such file or directory
#include <format.h>
^~~~~~~~~~
compilation terminated
Run Code Online (Sandbox Code Playgroud)
我注意到,在fmt我用来将其传输到以下命令后,该文件夹已“关闭”(标有“X”)usr/~:
cp fmt-master/include/fmt usr/local/include/fmt
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法更改文件夹权限:
sudo chmod -rwx usr/local/include/fmt
Run Code Online (Sandbox Code Playgroud)
但即使这样也行不通。该命令在没有输出的情况下运行,fmt文件夹以 X 标记继续。我想知道 1) 将库文件夹保存在/usr/include是在 C++ 中安装外部库的标准程序吗?(对我来说它看起来太手动了)2)我在这里做错了什么?
大多数软件包和库不需要在 Ubuntu 上手动下载和安装。您可以libfmt-dev使用apt.
运行以下命令进行安装:
sudo add-apt-repository universe
sudo apt update
sudo apt install libfmt-dev
Run Code Online (Sandbox Code Playgroud)
Ubuntu 存储库中的大多数“构建”类型包的末尾都有“dev”后缀。10 次中有 9 次,当您需要安装一些先决条件或依赖项以使用 g++ 或 C++ 构建东西时,这些将是您需要的“lib”包。
要搜索可用的包,您可以使用apt-cache search如下示例中的命令:
apt-cache search libfmt
Run Code Online (Sandbox Code Playgroud)
如果你得到太多结果,你可以通过管道命令grep来缩小结果,如下所示:
apt-cache search libfmt | grep dev
Run Code Online (Sandbox Code Playgroud)
或类似的东西:
apt-cache search fmt | grep 'C+'
Run Code Online (Sandbox Code Playgroud)
或者您可以使用-i标志,grep以便它不区分大小写,如下所示:
apt-cache search fmt | grep -i 'c+'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3946 次 |
| 最近记录: |