2019独角兽企业重金招聘Python工程师标准>>>

使用 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 文件。其中能说明问题的代码是

$(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) 对应的文件。后两个宏的定义同样可以找到:

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 动作,你会发现所有的红色叉叉都没了,世界变美好了,哈哈~~

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

转载于:https://my.oschina.net/moooofly/blog/100224

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

  1. Mac下使用Eclipse读java源码

    Mac下java默认是没有附带源码的,到苹果开发者网站也没找到,就尝试了一下使用Window下的源码包,过程只需两步: 拷贝java在windows安装路径下的src.jar到你的Mac系统,在Max ...

  2. Windows下最轻量级Git克隆工具源码分享

    简单的来说: 原理就是只要用户知道git地址和分支名,即可克隆项目到指定文件夹,省去了输命令行的时间,方便用户去操作 系统要求: Windows系统,然后本身环境要装有git git安装地址:http ...

  3. Linux及Windows下编译exosip和osip2源码

    eXosip库及编译流程简介 1.eXosip库的简介 1.1.osip简介 osip2是一个开放源代码的sip协议栈,是开源代码中不多使用C语言写的协议栈之一,它具有短小简洁的特点,专注于sip底层 ...

  4. 在windows下执行./configure,make,makeinstall源码安装程序spice-gtk

    使用MSYS软件,在我的上一篇博客中有软件下载地址.本文使用MSYS进行源码编译spice-gtk-0.33. 首先打开MSYS软件,进入你源码所在目录,例如: cd  /c/Users/Admi.. ...

  5. windows下使用GIT下载ANDROID源码

    1.安装msysgit 2.运行msysgit, 进入bash界面 3.切换工作目录 cd /d/android/source 4.初始化目录 git init 5.下载 git clone http ...

  6. linux系统下deepin eclipse不能显示源码报class File Editor Source not found

    问题截图 问题原因 是找不到源码文件 解决方法 查看一下JAVA安装目录,如果没有sec.zip,就下载下面链接的文件 链接: https://pan.baidu.com/s/15K0QS2ZFxm6 ...

  7. Windows下的磁盘管理(二)

    续Windows下的磁盘管理(一) 六.跨区卷 跨区卷是由几个位于不同磁盘的未分配空间所组成的一个逻辑卷.即用户可以将几个磁盘内的未分配空间,合并成一个跨区卷,分配一个共同的驱动器,这样可能更有效地利 ...

  8. Windows下的包管理工具scoop

    Windows下的包管理工具scoop 包管理工具? 顾名思义就是程序软件包的安装工具,可以管理操作系统上的软件,我们熟知的Ubuntu上的apt-get(在Ubuntu16以上可以直接用apt了), ...

  9. Windows下打印服务器的管理(二)

    续Windows下打印服务器的管理(一) 7.表单 可以新建表单(纸张大小,一些不常用."不正规"的纸质大小) 四.将共享打印机发布到活动目录 1.发布打印机 右击打印机,选择&q ...

最新文章

  1. 2021 GitHub年度报告:7300万开发者,最爱的依旧是Javascript
  2. 11-Python基础之模块
  3. Java虚拟机04——垃圾收集器
  4. (转载)jQuery 1.6 源码学习(一)——core.js[1]之基本架构
  5. .NET重构—单元测试重构
  6. 2020-12-6(从反汇编理解指针和引用的区别)
  7. python做项目看板_三、使用python数据仓库实现可视化看板
  8. c# in deep 之Lambda表达式
  9. 再快的86也追不上会漂移的无人汽车
  10. 如何把html转换为js文件,Html2Js--Html代码到Javascript文件的转换
  11. 运维管理成中小企业“心头大患” 飞塔“安接入”一步解决
  12. Jenkins小坑之执行Shell
  13. Tomcat 7集群基于redis的session共享设置
  14. golang 猜数字小游戏
  15. Edison:FL Studio中的常用音频录制与剪辑插件
  16. 计算机桌面为什么没有语言栏了,语言栏不见了怎么办,教您语言栏不见了怎么办...
  17. 鲤——processing动画交互应用
  18. 涂抹oracle扩库,涂抹oracle
  19. repost 编程之路--一个程序员的艰辛经历
  20. 美国波多里奇国家质量奖(MBNQA)简介

热门文章

  1. servlet规范定义的Servlet生命周期
  2. SDNU 1481.纪念品分组(水题)
  3. 基础数据类型操作(一)——整型、字符串
  4. LC滤波器简单设计法 - 一文读懂LC滤波器简单设计方法及原理介绍,LC值计算方法...
  5. 谈一谈flex布局使用中碰到的一些问题
  6. Linux多线程实践(六)使用Posix条件变量解决生产者消费者问题
  7. C# Datatable排序与取前几行数据
  8. CLOB/BOLB与String互转
  9. XAF Study Recources
  10. .net 深入系统编程(三)