【问题标题】:Strange characters present in gcc compilation output message on console控制台上的 gcc 编译输出消息中存在奇怪的字符
【发布时间】:2026-01-05 17:20:08
【问题描述】:

当我在 Ubuntu 10.04-x32 位系统上使用 gcc 构建 C 代码时,Makefile 如下所示,在 bash shell 下。 gcc 输出消息在输出消息中有一些不需要的字符(见下文:â)。

test@dualboot-desktop:~/test/opencv$ make
cc -L/usr/local/lib -I/usr/local/include/opencv2 -lopencv_imgproc -lopencv_highgui -lopencv_video -lopencv_calib3d test1.c -o test_opencv
test1.c: In function âmainâ:
test1.c:13: error: too few arguments to function âcvLoadImageâ
test1.c:21: error: expected â;â before âcvMoveWindowâ
make: *** [test_opencv] Error 1

他们有时会混淆实际信息并变得讨厌。

这是什么原因?我在 ubunti 上的用户设置有任何问题

我该如何解决这个问题?

【问题讨论】:

  • 那些â的东西好像代表引号。可能是字符编码问题?
  • 错误的语言环境或错误的控制台字体。 locale 命令说什么?你能看到man ascii中的引号吗?
  • 我的语言环境似乎设置为:- LANG=en_GB.UTF-8 LC_CTYPE="en_GB.UTF-8" LC_NUMERIC="en_GB.UTF-8" LC_TIME="en_GB.UTF-8" LC_COLLATE="en_GB.UTF-8" LC_MONETARY="en_GB.UTF-8" LC_MESSAGES="en_GB.UTF-8" LC_PAPER="en_GB.UTF-8" LC_NAME="en_GB.UTF-8" LC_ADDRESS="en_GB. UTF-8" LC_TELEPHONE="en_GB.UTF-8" LC_MEASUREMENT="en_GB.UTF-8" LC_IDENTIFICATION="en_GB.UTF-8" LC_ALL=
  • 如果我使用带有任何 UTF-8 语言环境的 Linux 控制台或 xterm,就会发生这种情况。 konsole(KDE 终端仿真器)不会发生这种情况,C 和 POSIX 语言环境也不会发生这种情况。选择你的毒药。
  • @n.m - 那么如何将我的语言环境设置为 C 或 POSIX?

标签: gcc ubuntu-10.04


【解决方案1】:

linux mint 下的应用程序“终端”存在同样的问题。

解决方案: 终端(第 4 个菜单选项卡),zurücksetzen/reset,(从下面选择第 2 个菜单)。 烦人的符号是单引号'。

要使其永久化,请选择 Einstellungen/Settings(第二个菜单选项卡,最后一个选项),然后选择 Advanced,然后选择 Zeichensatz/Character set,将其更改为“UTF-8”(这是一些奇怪的 ISO,甚至不是 8859-1,就我而言)

【讨论】:

    【解决方案2】:

    如果您将 LC_LANG 设置为以 UTF8 结尾但您的终端出现问题(或未配置为处理)UTF8,那么您会遇到麻烦。

    要么配置您的终端,要么设置 LC_LANG=en_GB。

    【讨论】:

    • 谢谢 如果说 export LANG=en_GB 那么问题确实得到了解决。但是当我关闭此终端并下次启动新终端时,此更改将丢失。如何在全球范围内更改语言环境/LANG?
    • export LANG=en_GB 放入您的 .bashrc 文件中。
    • 在我的 Clion 控制台中遇到了同样的问题。更改控制台编码修复了它。谢谢。