【问题标题】:How to link header for gcc如何链接 gcc 的标头
【发布时间】:2013-11-22 00:22:26
【问题描述】:

很抱歉提出一个愚蠢的问题,但我真的不知道我做错了什么。 我下载了这个仓库:https://gitorious.org/gupnp/gupnp/source/ee436107df2ec2aa7ca619b47e2313557bb40d4e 它包含 ./example/ 目录中的简单示例和 ./libgupnp/ 目录中的一些标题。 一个例子包括 gupnp.h 与这一行:

#include <libgupnp/gupnp.h>

gupnp.h 位于 headers (./libgupnp/) 目录中。

我开始用 gcc 手动编译它并得到 ​​p>

light-server.c:12:28:致命错误:libgupnp/gupnp.h:没有这样的文件或 目录

好的,我安装 gupnp 开发包

​​>

sudo apt-get install libgupnp-1.0-dev

现在 gupnp.h 也位于 /usr/include/gupnp-1.0/libgupnp

我尝试使用编译它

gcc light-server.c -L/usr/include/gupnp-1.0/

gcc light-server.c -llibgupnp

并采取同样的错误。

两个问题:

1) 我如何链接这个标题?

2) 如果我需要安装 libgupnp-1.0-dev ,或者我可以将来自 repo 的标头与示例一起使用?

【问题讨论】:

  • 你需要include头文件,并与库链接。头文件不是库,所以你不要链接它们。在我看来,您的编译器找不到包含文件。您可以尝试通过-I/path/to/the/header/file 明确告诉它。

标签: gcc


【解决方案1】:

从第二个问题开始,您可能不想安装该开发包,因为您正在制作本地等效包。

您需要告诉 gcc 在哪里可以找到库的本地副本以及库的本地副本中的标头。我假设您已经编译(./configure;make),但没有安装它(make install)。您需要向 gcc 提供指向 ./ 的 -L 和 -I 标志

如果你已经安装了它,你的 -L 和 -I 标志应该指向你安装它的位置(可能分别是 /usr/local/lib 和 /usr/local/include)

【讨论】:

    猜你喜欢
    • 2019-04-15
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多