1

我收到以下错误

找不到“libwebsockets.h”文件

但我已经使用命令安装了 libwebsockets

冲泡安装 libwebsockets

我该如何解决这个错误?我想实现一个 websocketserver,我需要这个。如果我的代码只有以下行

#include <libwebsockets.h>

它给了我一个错误。我试图用gcc foo.c

4

1 回答 1

4

您需要将适当的编译和链接标志传递给编译器,以便它找到头文件和库。

这通常通过程序“pkg-config”来完成。要获取编译标志,请运行:

pkg-config libwebsockets --cflags

要获取链接标志:

pkg-config libwebsockets --libs

如果在同一步骤中编译和链接,则需要将上述两个命令输出的标志传递给编译器。如果您有单独的编译和链接命令,则在编译期间传递“--cflags”输出,在链接期间传递“--libs”输出。

在你的情况下,你可以编译:

gcc $(pkg-config libwebsockets --cflags) foo.c $(pkg-config libwebsockets --libs)

$()语法获取您放在和之间的命令的输出,(并将)其放入您的命令中,就好像您输入了它一样。

您可能应该编写一个小型构建脚本来为您执行此操作。例如,在与“foo.c”相同的目录中名为“build”的文件中:

#! /bin/sh
gcc $(pkg-config libwebsockets --cflags) foo.c $(pkg-config libwebsockets --libs)

使脚本可执行:

chmod +x build

然后就叫它:

./build
于 2016-03-21T12:59:58.143 回答