【原创】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版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
开发工具 Android开发 git
Windows下载android2.2完整源码(转)
Windows下载android2.2完整源码(转)
204 3
|
传感器 网络协议 物联网
手把手教你在 Windows 环境中搭建 MQTT 服务器
手把手教你在 Windows 环境中搭建 MQTT 服务器
1729 0
EMQ
|
物联网 Linux C语言
在 Windows 平台搭建 MQTT 服务
NanoMQ 有着强大的跨平台和可兼容能力,不仅可以用于以 Linux 为基础的各类平台,也为 Windows 平台提供了 MQTT 服务的新选择。
EMQ
425 87
在 Windows 平台搭建 MQTT 服务
|
Java 开发工具 Android开发
如何在Eclipse中查看Android源码或者第三方组件包源码(转)
如何在Eclipse中查看Android源码或者第三方组件包源码(转)
172 4
|
消息中间件 数据可视化 Go
Rabbitmq 搭建使用案例 [附源码]
Rabbitmq 搭建使用案例 [附源码]
155 0
|
消息中间件 存储 监控
深度写作:深入源码理解MQ长轮询优化机制
【11月更文挑战第22天】在分布式系统中,消息队列(Message Queue, MQ)扮演着至关重要的角色。MQ不仅实现了应用间的解耦,还提供了异步消息处理、流量削峰等功能。而在MQ的众多特性中,长轮询(Long Polling)机制因其能有效提升消息处理的实时性和效率,备受关注。
412 12
|
消息中间件 存储 Java
深入源码理解MQ长轮询优化机制
【11月更文挑战第22天】在分布式系统中,消息队列(MQ)作为一种重要的中间件,广泛应用于解耦、异步处理、流量削峰等场景。其中,延时消息和定时消息作为MQ的高级功能,能够进一步满足复杂的业务需求。为了实现这些功能,MQ系统需要进行一系列优化,长轮询机制便是其中的关键一环。本文将深入探讨MQ如何设计延时消息和定时消息的优化机制,特别是长轮询机制的实现原理及其在Java中的模拟实现。
231 2
|
传感器 数据可视化 网络协议
DIY可视化整合MQTT生成UniApp源码
DIY可视化整合MQTT生成UniApp源码
230 0
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
1287 0
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)
【Windows驱动开发】注册表的基本操作(创建、打开、修改、读取、枚举)(附源码)

热门文章

最新文章

推荐镜像

更多