在 c 中编译:找不到包含文件



我收到以下错误

找不到 'libwebsockets.h' 文件

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

brew install libwebsockets

如何解决此错误?我想实现一个网络套接字服务器,我需要这个。如果我的代码只有以下行

#include <libwebsockets.h>

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

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

这通常使用程序"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

相关内容

  • 没有找到相关文章

最新更新