【问题标题】:Undefined reference gcc未定义的参考 gcc
【发布时间】:2012-06-27 18:49:54
【问题描述】:

当我尝试使用 gcc 在 ubuntu 上编译我的程序时,我收到以下错误:

main.c:(.text+0x162): 未定义引用json_parse' main.c:(.text+0x182): undefined reference tojson_value_free'

但是,这些函数包含在一个名为 json.h 的文件中,我将其导入 main.c 并包含在我的 gcc 命令中。

有人知道吗?

【问题讨论】:

    标签: c gcc ubuntu compilation


    【解决方案1】:

    你不应该编译“json.h”头文件。未定义的引用不是编译器错误,它是链接器错误。这意味着您没有将包含 json_value_free 的文件编译到您的代码中,或者没有链接到包含它的库。您应该执行任一操作,而不是尝试编译头文件本身。

    所以,如果你有一个单独的 json.c 文件,你必须将它编译并链接到你的 main.c 文件。试试(我假设是 GCC):

    gcc -o myprog main.c json.c
    

    【讨论】:

    • 对不起,我想我没有说清楚:我正在尝试编译 main.c。问题是, json.h 文件不在库中。它只是我导入和包含的一个 .h(和 .c)文件。
    • 我明白了。请参阅我的进一步解释。
    • 就是这样!谢谢! (可以并且会在四分钟内接受您的回答)
    • 谢谢!很高兴能帮到你。
    • @ThomasK 所以你能做到吗?非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多