- 浏览: 51911 次
- 性别:
- 来自: 广州
最新评论
erlang_protobuffs源码下载地址:
https://github.com/basho/erlang_protobuffs
因为这个项目是用rebar编译的,本人比较笨 ,不会玩rebar,所以就提取了src文件夹里面的代码,自己写了个makefile来编译
下面就来记录一下我的实验步骤
1 创建项目目录结构
2 导入源文件到src/mod目录下
3 这里有个注意事项:里面有protobuffs_parser.yrl和protobuffs_scanner.xrl文件,
有两种处理方法:
1 先编译成erl文件,然后下面的makefile编译规则就不用加上yrl和xrl(具体看makefile)
编译方法:
2 不编译成erl文件,然后下面的makefile编译规则要加上yrl和xrl
4 写makefile
1 inlcude.mk:放到hrl目录下
2 Makefile:在src目录下创建
3 在src/目录下,执行make
5 测试
1 在proto/目录下创建proto文件
2 在scripts目录下创建all.proto导入proto/目录下的所有proto文件
3 写个shell脚本控制生成proto
4 执行
5 为什么会报no_abstract_code错误呢,这涉及编译的问题,pokemon_db.beam要生成the form of abstract code 所以修改include.mk:
ERLC := erlc +debug_info(参考erlang手册里面的compile模块)
6 重新编译一次,然后再执行./create_erl_proto
6 最后,自己可以写个控制脚本来控制编译代码和生成proto。下面是我整理好的代码,有兴趣的可以下载看看。本人水平比较低,有问题谢谢指教 。
https://github.com/basho/erlang_protobuffs
因为这个项目是用rebar编译的,本人比较笨 ,不会玩rebar,所以就提取了src文件夹里面的代码,自己写了个makefile来编译
下面就来记录一下我的实验步骤
1 创建项目目录结构
cd /data mkdir -p protobuffs/{ebin,hrl,proto,scripts,src/{include,mod}}
2 导入源文件到src/mod目录下
3 这里有个注意事项:里面有protobuffs_parser.yrl和protobuffs_scanner.xrl文件,
有两种处理方法:
1 先编译成erl文件,然后下面的makefile编译规则就不用加上yrl和xrl(具体看makefile)
编译方法:
直接在src/mod目录下执行: erlc protobuffs_parser.yrl protobuffs_scanner.xrl 或者运行erl环境 erl yecc:file(protobuffs_parser). leex:file(protobuffs_scanner).
2 不编译成erl文件,然后下面的makefile编译规则要加上yrl和xrl
模式规则 %.beam : %.erl %.yrl %.xrl erlc $<
4 写makefile
1 inlcude.mk:放到hrl目录下
2 Makefile:在src目录下创建
3 在src/目录下,执行make
5 测试
1 在proto/目录下创建proto文件
2 在scripts目录下创建all.proto导入proto/目录下的所有proto文件
3 写个shell脚本控制生成proto
4 执行
5 为什么会报no_abstract_code错误呢,这涉及编译的问题,pokemon_db.beam要生成the form of abstract code 所以修改include.mk:
ERLC := erlc +debug_info(参考erlang手册里面的compile模块)
6 重新编译一次,然后再执行./create_erl_proto
6 最后,自己可以写个控制脚本来控制编译代码和生成proto。下面是我整理好的代码,有兴趣的可以下载看看。本人水平比较低,有问题谢谢指教 。
- protobuffs.tar (690 KB)
- 下载次数: 1
发表评论
-
erlang-Astart算法
2018-07-02 08:34 487%%%-------------------------- ... -
erlang--常用内建函数收录
2016-07-15 15:43 5371:gen_event:which_handlers(Even ... -
erlang异常--try...catch
2016-07-13 19:48 947触发异常 throw(Term) exit(Reason ... -
erlang-退出信号捕捉trap_exit
2016-07-12 09:54 1040进程链接的工作: A进程意外退出时,会产生一个退出信号。所 ... -
Erlang--随机数
2016-04-25 10:26 19791、普通随机 random:uniform(N) 2、以时间 ... -
Erlang--性能分析工具之eprof
2016-04-12 18:22 688eprof是erlang自带的一个性能分析工具,可以帮助我 ... -
Erlang监控工具(二)etop
2016-04-07 17:46 1788file:///D:/Program%20Files/er ... -
Erlang监控工具(一)observer
2016-04-05 15:17 1278Erlang系统本身携带一个图形化监控工具,它可以监控:系 ... -
Erlang--epmd
2016-03-30 14:13 614epmd Erlang Port Mapper Daemo ... -
Erlang--节点
2016-03-30 11:25 735Erlang节点 file:///D:/Program%20F ... -
小技巧收录----唯一ID
2016-03-08 14:34 923在游戏开发中,角色id或者公会id等都需要做唯一设计, ... -
Erlang--TCP学习(五)总结篇
2015-07-15 19:55 1756一、erlang socket的消息流的三种控制方式: 1 ... -
Erlang--TCP学习(四)并行web server篇
2015-07-14 20:09 683-module(tcp_parallel_server). ... -
Erlang--TCP学习(三)串行web server篇
2015-07-14 19:35 510简单web sever改进版:串行服务器,一次只接受一个连 ... -
Erlang--TCP学习(二)简单web_Server篇
2015-07-14 16:39 1031现在来写个简单的web服务器,要实现的功能是:只接受一个s ... -
Erlang--TCP学习(一)Client篇
2015-07-14 16:39 738gen_tcp:connect(Host,Port,[Op ... -
erlang sasl错误日志
2015-04-22 16:03 1423SASL (System Architecture Sup ... -
erl启动参数
2015-04-20 16:54 1056erl启动参数分类 1 emulator flags 用“ ... -
Erlang和SMP
2015-04-17 15:44 1712SMP:Symmetrical Multi Processor ... -
erlang安装
2015-03-09 17:38 702erlang安装 1 解压包 tar -zxvf otp_s ...
相关推荐
这个过程可能需要一些时间,因为它会编译整个Erlang虚拟机和标准库。编译完成后,你可以通过运行`make tests`来验证Erlang的正确性。 5. **安装**:最后,使用`make install`将编译好的Erlang二进制文件安装到你的...
在Linux操作系统中,`Makefile` 是一个至关重要的工具,它使得软件项目的编译、链接等构建过程自动化,极大地提高了开发效率。本资料详细介绍了`Makefile`的语法和用法,是学习和掌握`Makefile`的实用指南。下面将对...
《跟我一起写Makefile》这本书提供了深入浅出的指导,帮助读者掌握Makefile的编写技巧。Makefile是软件构建过程中的重要工具,特别是在C/C++等编译型语言的项目中,它能自动化编译、链接等过程,提高开发效率。在本...
"跟我一起写Makefile"的主题旨在帮助开发者掌握如何编写有效的Makefile,以便高效地管理源码并进行编译。在这个主题下,我们将深入探讨Makefile的基本结构、规则、目标、依赖关系以及变量等核心概念。 首先,...
1. 解压`OTP进程池应用程序_Erlang_Makefile_下载.zip`到本地目录。 2. 导航到`pooler-master`目录。 3. 执行`make`命令编译源代码,生成beam文件。 4. 可以通过运行`make test`来执行测试,确保代码正确无误。 5. ...
一旦定义好编译规则,只需运行 `make` 命令,整个工程将按照预设的规则自动编译,无需手动干预每一个编译步骤,极大地提高了软件开发的效率。 #### 三、Makefile 在 Linux 下的应用 在 Unix/Linux 环境下,...
【makefile】在软件工程中,makefile是一个控制编译和链接过程的脚本文件,它可以自动执行一系列命令以构建项目。在VHDL设计中,makefile通常用于自动化编译、综合、实现和生成比特流等步骤,极大地提高了工作效率。...
在Linux操作系统中,Makefile是一个强大的工具,它能够自动化编译、链接以及执行程序等任务,极大地提高了开发效率。对于任何大型项目,理解和编写Makefile都是至关重要的,因为它使得构建过程有序且可重复。下面...
本资源“makefile_makefile_源码”显然提供了关于如何编写和使用 `Makefile` 的实例和解释。 ### Makefile 基本概念 1. **目标(Target)**:`Makefile` 中的目标是需要生成的文件,通常是可执行文件或者中间的...
通过阅读《跟我一起写Makefile.pdf》和《Linux主要shell命令详解.doc》这两份文档,你可以深入理解并掌握这两个关键工具的使用。这将极大地提高你在Linux开发中的效率和生产力,无论是简单的文件操作还是复杂的项目...
这个压缩包“gcc.rar_gcc makefile_gcc 使用_makefile_makefile gcc_makefile in en”包含了关于GCC的详细资料和makefile的使用指南。`gcc资料大全.chm`可能是一个包含GCC的介绍、使用教程、配置方法、错误处理等...
最后,阅读《跟我一起写 Makefile.pdf》这份文档,将提供更详细的指导,帮助你理解和优化Makefile,以适应keptbqi项目在Linux环境下的具体需求。该文档可能会涵盖Makefile的高级特性,如规则的条件判断、宏变量的...
make文件夹包含了两个子文件夹,a_b子文件夹实现多目标Makefile编译,projects子文件夹实现多层次Makefile文件编译。make文件夹中实现多个Makefile文件编译,即调用a_b和project2子文件夹中Makefile编译。
在IT行业中,`Makefile`是一个非常重要的工具,特别是在软件构建和自动化编译过程中。`Makefile`主要用于管理和编译项目中的源代码,确保代码的高效构建和更新。本资源包"makefile-doc.rar"专注于讲解`Linux`和`Unix...
GNU Makefile是软件构建自动化工具的核心,用于管理项目中的编译和链接过程。它通过定义规则来指示如何从源代码生成可执行文件或其他目标。在本资料中,陈皓讲解了GNU Makefile的基础和应用,旨在帮助开发者更高效地...
这个压缩包中的文档“跟我一起写 Makefile”系列可能涵盖了上述各个方面,包括基本语法、高级特性、调试技巧以及最佳实践。通过学习这些文档,你可以深入了解如何编写高效、可维护的Makefile,从而更好地管理你的...
在Linux开发环境中,Makefile是不可或缺的工具,它帮助开发者自动化构建、编译和链接程序,极大地提高了工作效率。本教程将深入讲解Makefile的核心概念、结构以及编写技巧,旨在让你快速掌握这一强大的工具。 首先...
2. 顶层Makefile中的CFLAGS在编译任意一个.c文件时都会使用 3. CFLAGS EXTRA_CFLAGS CFLAGS_xxx.o 三者组成xxx.c的编译选项 二、顶层目录的Makefile: 它除了定义obj-y来指定根目录下要编进程序去的文件、子...
《跟我一起写Makefile》是针对编程开发人员的一份实用教程,主要讲解如何设计和修改Makefile,以提高编译构建项目的效率。Makefile是Unix/Linux系统中用于自动化编译、链接和其他构建任务的文本文件,它定义了目标、...