【原创】Windows下使用 Eclipse 管理 RabbitMQ 源码之问题解决

简介:

      使用 Eclipse + Erlide 来管理 Erlang 代码是一种常见方式。本文简要说明下,本人在 Windows 下管理 RabbitMQ 代码时遇到的小问题。

      首先,搭建好 Eclipse + Erlide 的环境,方法略;然后,将下载好的 RabbitMQ 源码放置在指定的目录中,比如 D:\ErlangCode\rabbitmq-server-3.0.0 ,目录中的内容如下图所示:

      照道理讲,一般源码包中的 README 和 INSTALL 会说明源码包的使用方式,当时 RabbitMQ 的不是,这两个文件中都仅仅给出了到官网的网页链接,其中一个网页中提到了

Change to the rabbitmq-server directory, and type make.

      好吧,以上用法时针对 Unix-like 中的 make 方式的。如果你打算在 Windows 中搭建个 linux 模拟环境以使用 make 命令按上面说的,执行个 make 就 ok 了。但我不想搭环境,也不打算直接在 Linux 上执行命令后,再将文件拷回到 Windows 上来,所有我要研究下如何解决这个问题。好,先将这个问题暂停下,说说我在 Eclipse 上得到了什么。

      将 RabbitMQ 工程导入到 Eclipse 中后,你能看到下图所示内容:

      恩,该导入的都导入了,但是出现了很多红色的叉,可以看到 Problems 标签下的 Error 描述信息为 “can't find include file "rabbit_framing.hrl"” ,回到源码所在的根目录中搜索该文件,该文件确实是不存在的,恩,该文件不存在的原因我就不啰嗦了,可以在官方文档中找到答案,我们需要解决的是如何得到该文件。

      在没有其他线索的情况下,最好的办法还是看看源码包中的其他文件,看看是否有什么相关的。最后可以定位到 rabbitmq-server-3.0.0 中的 Makefile 文件。其中能说明问题的代码是

?
1
2
$(INCLUDE_DIR) /rabbit_framing .hrl: codegen.py $(AMQP_CODEGEN_DIR) /amqp_codegen .py $(AMQP_SPEC_JSON_FILES_0_9_1) $(AMQP_SPEC_JSON_FILES_0_8)
     $(PYTHON) codegen.py --ignore-conflicts header $(AMQP_SPEC_JSON_FILES_0_9_1) $(AMQP_SPEC_JSON_FILES_0_8) $@

      可以看出 rabbit_framing.hrl 文件的产生,依赖了  codegen.py 、amqp_codegen.py 、$(AMQP_SPEC_JSON_FILES_0_9_1) 及 $(AMQP_SPEC_JSON_FILES_0_8) 对应的文件。后两个宏的定义同样可以找到:

?
1
2
AMQP_SPEC_JSON_FILES_0_9_1=$(AMQP_CODEGEN_DIR) /amqp-rabbitmq-0 .9.1.json
AMQP_SPEC_JSON_FILES_0_8=$(AMQP_CODEGEN_DIR) /amqp-rabbitmq-0 .8.json

      好,现在按照上面脚本中的命令,在 CMD 中执行:

      此时查看 include 目录你会发现已经生成了我们要的文件:

      按照上面的方法,生成后续需要的另外两个文件 -- rabbit_framing_amqp_0_9_1.erl 和 rabbit_framing_amqp_0_8.erl :

      此时,在 Eclipse 中对 RabbitMQ 工程执行 Refresh 动作,你会发现所有的红色叉叉都没了,世界变美好了,哈哈~~

      接下来,该干啥干啥吧~~


相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
5月前
|
网络协议 数据安全/隐私保护 Windows
Windows Server 各版本搭建域控制器实现通过域管理用户(03~19)
Windows Server 各版本搭建域控制器实现通过域管理用户(03~19)
|
5月前
|
存储 缓存 数据安全/隐私保护
Windows 命令提示符(CMD)操作(二):系统信息和管理
Windows 命令提示符(CMD)操作(二):系统信息和管理
|
2月前
|
传感器 网络协议 物联网
手把手教你在 Windows 环境中搭建 MQTT 服务器
手把手教你在 Windows 环境中搭建 MQTT 服务器
217 0
|
4月前
|
消息中间件 数据可视化 Go
Rabbitmq 搭建使用案例 [附源码]
Rabbitmq 搭建使用案例 [附源码]
46 0
|
11天前
|
传感器 数据可视化 网络协议
DIY可视化整合MQTT生成UniApp源码
DIY可视化整合MQTT生成UniApp源码
28 0
EMQ
|
3月前
|
物联网 Linux C语言
在 Windows 平台搭建 MQTT 服务
NanoMQ 有着强大的跨平台和可兼容能力,不仅可以用于以 Linux 为基础的各类平台,也为 Windows 平台提供了 MQTT 服务的新选择。
EMQ
104 6
在 Windows 平台搭建 MQTT 服务
|
3月前
|
Windows 内存技术
nvm 管理和切换 node版本(windows操作系统)
nvm 管理和切换 node版本(windows操作系统)
73 0
|
4月前
|
消息中间件 Java RocketMQ
RocketMQ搭建并测试(windows)
RocketMQ搭建并测试(windows)
649 0
|
4月前
|
应用服务中间件 nginx Windows
windows系统bat批处理 管理nginx启动 nginx脚本管理bat脚本管理生命周期windows一键nginx启动
windows系统bat批处理 管理nginx启动 nginx脚本管理bat脚本管理生命周期windows一键nginx启动
94 0
|
5月前
|
数据安全/隐私保护 Windows
Windows 用户和组的管理
Windows 用户和组的管理

推荐镜像

更多