Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c中编译:未找到包含文件_C_Sockets_Libwebsockets - Fatal编程技术网

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

在c中编译:未找到包含文件,c,sockets,libwebsockets,C,Sockets,Libwebsockets,我犯了以下错误 找不到“libwebsockets.h”文件 但是我已经用这个命令安装了libwebsockets brew安装libwebsockets 如何解决此错误? 我想实现一个websocketserver,我需要这个。 如果我的代码为,则只有以下行 #include <libwebsockets.h> #包括 它给了我一个错误。 我试图用gcc foo.c编译它您需要向编译器传递适当的编译和链接标志,以便它找到头和库 这通常通过程序“pkg config”完成。要获取

我犯了以下错误

找不到“libwebsockets.h”文件

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

brew安装libwebsockets

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

#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”的文件中:

使脚本可执行:

chmod +x build
然后就叫它:

./build

告诉我们更多:你想编译什么?在哪个系统上。您是如何安装libwebsockets的?@Nicos。当我运行第一条语句时,在pkg config搜索路径中找不到包libwebsockets。也许您应该将包含“libwebsockets.pc”的目录添加到PKG_CONFIG_PATH环境变量中,但找不到包“libwebsockets”。在第二个语句中,我得到了这个:未知选项--lflags@OkanAlbayrak尝试查找.pc文件所在的位置。在自制安装根目录中,搜索“websockets.pc”。例如
find/path/to/homebrew/root-name“*websockets*.pc”
。它找到什么了吗?好的,我在libwebsockets.pk文件中找到了itI,并运行了第一条语句。它没有给我错误。但是当我不得不编译我的c代码时,它给了我一个error@OkanAlbayrak哦,对不起。它不是
--lflags
,而是
--libs
。我正在更新我的答案。
./build