Installation FreeBSD从源代码安装ejabberd缺少yaml.h

Installation FreeBSD从源代码安装ejabberd缺少yaml.h,installation,ejabberd,freebsd,Installation,Ejabberd,Freebsd,我明白为了开发ejabberd模块,我必须能够从源代码处编译它 我有FreeBSD 11.0-RELEASE-p9,作为VirtualBox上的来宾操作系统。以下是我的尝试 使用git,我将源代码克隆到/usr/local/ejabberd,如下所示: 我运行以下命令: git克隆git://github.com/processone/ejabberd.git 埃贾伯德 埃贾伯德 /autogen.sh ./configure--enable user=ejabberd--enable mysq

我明白为了开发ejabberd模块,我必须能够从源代码处编译它

我有FreeBSD 11.0-RELEASE-p9,作为VirtualBox上的来宾操作系统。以下是我的尝试

使用git,我将源代码克隆到/usr/local/ejabberd,如下所示:

我运行以下命令:

git克隆git://github.com/processone/ejabberd.git 埃贾伯德 埃贾伯德 /autogen.sh

./configure--enable user=ejabberd--enable mysql

gmake安装

但我有以下错误:

编译/usr/local/ejabberd/deps/fast_yaml/c_src/fast_yaml.c /usr/local/ejabberd/deps/fast_yaml/c_src/fast_yaml.c:18:10:致命错误:未找到“yaml.h”文件

错误:处理/usr/local/ejabberd/deps/fast_yaml/:rebar_abort时编译失败

仅供参考,我已经使用端口安装了libyaml-0.1.7,我想成功了吧

任何提示/建议


谢谢。

您可以看看FreeBSD是什么:它在运行
make
时将
-I/usr/local/include
传递到
CFLAGS
。还有一个用于ejabberd的函数,在编译之前应用


如果您想从源代码处编译开发版本,可以尝试先运行
make-C/usr/ports/netim/ejabberd extract
,然后将git中的源代码放入
/usr/ports/netim/ejabberd/work
目录。然后运行
make-C/usr/ports/netim/ejabberd install
应该安装开发包。

谢谢你,阿罗德。谢谢你,阿罗德!我是一个免费的新手。无论如何,我想我可以欣赏-I/usr/local/include,因为我可以看到“yaml.h”文件在目录中。因此,我在/ejabberd/Makefile文件中添加了一行CFLAGS+=-I/usr/local/include。(我遵循FreeBSD端口的Makefile)然后运行make和gmake。我还按照你的提示运行make-C/usr/ports/netim/ejabberd extract并从git中放入源代码。然后运行make-C/usr/ports/netim/ejabberd安装。但我的编译意外失败..尝试设置MAKE_JOBS_UNSAFE=是的,我不知道如何进行。从源代码编译开发版本绝非易事。看看你得到的错误,试着修复它们。“使作业不安全”不是实际的错误消息,请向上滚动查看。