如何在CentOS9上使用C++ fmt?

gijlo24d  于 2022-11-07  发布在  其他
关注(0)|答案(1)|浏览(275)

我使用dnf install fmt安装了fmt。安装成功。但当我尝试将其用作#include <fmt/format.h>时,它却说找不到它。我从fmt git页面下载了include,所以它现在用-I...找到了format.h,但我有编译错误。

undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
collect2: error: ld returned 1 exit status

我尝试了-lfmt,但出现错误

/usr/bin/ld: cannot find -lfmt

我在Git上找不到这种类型的使用的任何帮助。
如何在CentOS9**上使用fmt库而不手动构建fmt**项目?
EIDT:dnf安装输出

c3frrgcw

c3frrgcw1#

Fedora/RHEL/CentOS对所有安装了共享库的软件包使用以下命名约定:

name-此软件包包含运行时共享库,运行与此库链接的程序时需要这些库。
name-devel-“devel”包包含头文件和符号链接,在开发使用共享库的应用程序时,可以使用这些文件和符号链接来链接该库。

您需要两个包来编译使用库的代码。devel包指定了对主包的依赖关系,因此dnf install name-devel将安装这两个包。
你应该花一点时间学习如何构建你自己的rpm包。它并不复杂。当你构建你的包时,rpmbuild会负责分析生成的二进制文件,发现它链接到哪些共享库,然后在你自己的rpm包中记录相应的依赖关系,所以安装它只会拉入主name包。

相关问题