You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GCC编译含FMT库的C++代码时提示找不到文件或目录

问题解决:GCC编译FMT库代码时的链接错误

错误根源

你的编译命令存在语法错误:

  • 误将FMT当作源文件传入,实际它是需要链接的库,应该用-lfmt参数指定
  • 输出文件名FMT Colours包含空格但未加引号,导致GCC将Colours也当作输入文件处理,进而被ld判定为找不到的文件
  • 代码中使用了fg、fmt::color等功能,但未包含对应的头文件fmt/color.h,会引发编译错误

修正后的代码

#include <iostream>
#include <fmt/core.h>
#include <fmt/color.h>  // 新增:引入颜色相关功能的头文件

int main() {
    fmt::print(fg(fmt::color::green), "This text is green.\n");
    fmt::print(fg(fmt::color::red) | fmt::emphasis::bold, "This text is bold and red.\n");
    return 0;
}

正确的编译命令

cd "c:\Users\Surface Book 2\Documents\C++ Stuff\Colours\" ; if ($?) { g++ Colours.cpp -o "FMT Colours" -lfmt } ; if ($?) { .\"FMT Colours" }

额外说明

如果是手动编译安装的FMT库(非通过包管理器如pacman安装),需额外指定头文件和库的路径:

g++ Colours.cpp -o "FMT Colours" -I/你的FMT头文件路径 -L/你的FMT库文件路径 -lfmt

将路径替换为你实际安装FMT的目录即可。

内容的提问来源于stack exchange,提问作者Metactal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:14:57