【问题标题】:gcc raises "unrecognized command line option" error with pkg-configgcc 使用 pkg-config 引发“无法识别的命令行选项”错误
【发布时间】:2014-06-22 11:47:19
【问题描述】:

我正在尝试使用教程here 编译一个gtk 程序。当我发出命令时

gcc -o tut tut.c $(pkg-config --cflags --libs gtk+-2.0 gmodule-2.0)

我收到以下错误:

gcc: error: unrecognized command line option ‘-pthread -I/usr/include/gtk-2.0
-I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0
-I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1
-I/usr/include/libpng12 -I/usr/include/harfbuzz  -Wl,--export-dynamic -pthread
-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0
-lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lfreetype
-lgmodule-2.0 -lglib-2.0  ’

gcc 是 4.8.2 版本。 pkg-config 是 0.26 版。我已经安装了 libgtk2.0-dev。

我可以很好地编译简单的c程序。

如何解决“无法识别的命令”问题?


[评论更新]

我正在使用zsh

【问题讨论】:

  • 我从 pkg-config --cflags --libs gtk+-2.0 gmodule-2.0 的输出中删除了“-pthread”,并将该命令的输出粘贴到 gcc 命令和编译顺利进行。
  • 如果我给我的 gcc 提供了无效的选项,每个无法识别的命令行选项都会在单独的错误消息中给出。这似乎是一个论点。您是否使用"$(...)" 而不仅仅是$(...) 或类似的东西?
  • @mafso,我只使用 $(...),没有引号。
  • 但是,这似乎是 gcc 的一个论点……您可以像删除“pthread”(如您的评论中所述)但不删除它时那样做吗?
  • 有趣…The Debian zsh man page“如果替换没有用双引号括起来,则使用 IFS 参数将输出分解为单词。” 在“命令替换”下。无论如何,很好,你找到了解决方案。

标签: c gcc gtk zsh pkg-config


【解决方案1】:

这看起来像是一个 shell 问题。

你用的是什么外壳?

如果不是bash,试试bash

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 1970-01-01
    • 2013-05-26
    • 2020-02-03
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 1970-01-01
    相关资源
    最近更新 更多