C 如何在Linux上构建mongoose web服务器?

C 如何在Linux上构建mongoose web服务器?,c,mongoose-web-server,C,Mongoose Web Server,如果这似乎是一个愚蠢的问题,我很抱歉,但我想我更习惯于makefile或配置脚本附带的包 我从下载了Mongoose源tar文件,并将其解压 然后,我尝试使用 gcc-g-cmongoose.c-omain.o-lpthread-ldl。 但是,在尝试执行之后,出现了错误-bash:./main.o:无法执行二进制文件 当我查看mongoose.c源代码时,没有找到主函数 我在哪里可以获得主功能,以便Linux mongoose web服务器可以编译成与Windows的mongoose.exe相

如果这似乎是一个愚蠢的问题,我很抱歉,但我想我更习惯于makefile或配置脚本附带的包

我从下载了Mongoose源tar文件,并将其解压

然后,我尝试使用
gcc-g-cmongoose.c-omain.o-lpthread-ldl
。 但是,在尝试执行之后,出现了错误
-bash:./main.o:无法执行二进制文件

当我查看mongoose.c源代码时,没有找到主函数


我在哪里可以获得主功能,以便Linux mongoose web服务器可以编译成与Windows的mongoose.exe相同的工作方式?

这是因为mongoose不应该单独使用,而是“嵌入”到您的程序中。您需要创建一个程序,从
mongoose.c
调用正确的函数


另外,GCC的
-c
标志告诉它创建一个对象文件,该文件需要链接以创建一个可执行文件。因此,您尝试执行一个不可执行的文件。

这是因为mongoose不应该单独使用,而是“嵌入”到您的程序中。您需要创建一个程序,从
mongoose.c
调用正确的函数


另外,GCC的
-c
标志告诉它创建一个对象文件,该文件需要链接以创建一个可执行文件。因此,您尝试执行一个不可执行的文件。

Mongoose确实附带了一个Makefile,并将编译为一个独立的命令行程序。包括Lua和SQLite

编译最新版本的最简单方法是将cd放入“build”目录并运行
make unix
。我不确定下载页面上的存档版本,但trunk一直相当稳定


今晚早些时候,我刚刚从github签出了Mongoose的一个干净副本,并毫无问题地构建了它,因此我可以确认这是可行的(当然,假设您有任何其他正确设置的依赖项)。

Mongoose确实附带了一个Makefile,并将作为一个独立的命令行程序进行编译。包括Lua和SQLite

编译最新版本的最简单方法是将cd放入“build”目录并运行
make unix
。我不确定下载页面上的存档版本,但trunk一直相当稳定


今晚早些时候,我刚刚从github签出了Mongoose的一个干净副本,并毫无问题地构建了它,因此我可以确认这是可行的(当然,假设您有任何其他正确设置的依赖项)。

为什么windows版本的Mongoose带有独立程序,而*nix版本没有?出于这个原因,我希望*nix版本包含一个独立版本。@merlin2011源代码存档没有主功能,因此它不能完全与提供的windows可执行文件(其中包含许多其他内容,如SSL、lua等-它们都不是核心mongoose源代码的一部分)中使用的内容相同。唯一能回答您问题的人是windows捆绑包的开发人员/维护人员,如果您愿意,请询问他们-尽管如果您是第一个想要此功能的人,我不会感到惊讶,这当然不是mongoose的预期用途。为什么windows版本的mongoose附带了一个独立的程序,而*nix版本没有?出于这个原因,我希望*nix版本包含一个独立版本。@merlin2011源代码存档没有主功能,因此它不能完全与提供的windows可执行文件(其中包含许多其他内容,如SSL、lua等-它们都不是核心mongoose源代码的一部分)中使用的内容相同。唯一能回答您问题的人是windows捆绑包的开发人员/维护人员,如果您愿意,请询问他们-虽然如果您是第一个想要此功能的人,我不会感到惊讶,但这肯定不是mongoose的预期用例。mongoose不再有./build目录,而且开发人员也不是很有帮助,可能是因为Mongoose现在部分是一个商业产品。@Gulbahar您可能已经知道了这一点,但fork保留了MIT许可证,正在积极开发,并且有详细说明。Mongoose不再有./build目录,开发人员也没有多大帮助,可能是因为猫鼬现在部分是一种商业产品。@Gulbahar你可能已经知道了这一点,但fork保留了麻省理工学院的许可证,正在积极开发,并且有详细的说明。