【问题标题】:Cannot find implementation of glib2-0 library (sudo apt-get install libglib2.0-dev)找不到 glib2-0 库的实现(sudo apt-get install libglib2.0-dev)
【发布时间】:2020-05-13 15:51:30
【问题描述】:

我正在 Eclipse 中开发一个需要 glib 库函数的 C 项目。我运行sudo apt-get install libglib2.0-dev,确实在路径/usr/include 处出现了glib-2.0。关键是这些文件夹中只有头文件,没有实现(换句话说,没有带有 .c 扩展名的文件)。事实上,编译器没有给出错误,但链接器将许多 undefined reference 抛出到 glib 文件夹中定义的任何函数/类型。我怎样才能正确安装这个库?

【问题讨论】:

  • 我认为您已经正确安装了它,只是您没有将其正确链接到您的项目。
  • 你能告诉我怎么做吗?我还添加到Project -> Properties -> C/C++build -> Settings: Tool settings tab -> GCC C Linker-> includes 的正确路径,但没有任何变化。我还尝试从命令行运行我的项目,明确说明所需的包含内容,但出现相同的“未定义引用”错误。你能告诉我如何正确链接它们吗?我快疯了
  • 您需要在这些设置中的某处添加库,无法确切说明在哪里
  • 欢迎使用 Stack Overflow,但即使建议不是 100% 的答案,也请不要贬低人们提出建议。很多时候,这就是如何做出好的答案:问题不清楚,有人提出建议,它可以帮助最初的提问者找到实际问题,然后他们可以发布一个可以在未来帮助其他人的答案。

标签: c eclipse include glib


【解决方案1】:

关键是这些文件夹中只有头文件,没有实现(换句话说,没有扩展名为 .c 的文件)

开发包不包含整个源代码树,仅包含开发您自己的项目所需的文件;即:头文件、pkg-config 描述文件(用于确定编译器和链接器标志);和仅在开发时需要的辅助工具。

事实上,编译器没有给出错误,但链接器会抛出许多未定义的引用,这些引用是在 glib 文件夹中定义的任何函数/类型。

为了构建依赖GLib的代码,你需要使用pkg-config; pkg-config 为您提供必要的编译器和链接器标志列表。例如,如果你想构建一个基于 GLib 的项目,你需要:

  • 调用pkg-config --cflags glib-2.0获取编译器标志列表
  • 调用pkg-config --libs glib-2.0获取链接器标志列表

您需要在编译器标志的设置中添加这两个命令的输出。

Eclipse 插件市场中还有一个pkg-config plugin 可能对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-28
    • 2022-08-16
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2011-09-23
    • 2018-03-01
    相关资源
    最近更新 更多