`

写个makefile编译erlang_protobuffs

阅读更多
erlang_protobuffs源码下载地址:
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。下面是我整理好的代码,有兴趣的可以下载看看。本人水平比较低,有问题谢谢指教
  • 大小: 3.8 KB
  • 大小: 14 KB
  • 大小: 14.9 KB
  • 大小: 9.3 KB
  • 大小: 9.7 KB
  • 大小: 7.4 KB
  • 大小: 2.6 KB
  • 大小: 4.7 KB
  • 大小: 9.4 KB
  • 大小: 12.7 KB
分享到:
评论

相关推荐

    erlang_版本24.3.4.4

    这个过程可能需要一些时间,因为它会编译整个Erlang虚拟机和标准库。编译完成后,你可以通过运行`make tests`来验证Erlang的正确性。 5. **安装**:最后,使用`make install`将编译好的Erlang二进制文件安装到你的...

    跟我一起写makefile_makefile_linux_

    在Linux操作系统中,`Makefile` 是一个至关重要的工具,它使得软件项目的编译、链接等构建过程自动化,极大地提高了开发效率。本资料详细介绍了`Makefile`的语法和用法,是学习和掌握`Makefile`的实用指南。下面将对...

    vczx_Makefile.rar_MAKEFILE_makefile_vc pdf_跟我一起写makefile p

    《跟我一起写Makefile》这本书提供了深入浅出的指导,帮助读者掌握Makefile的编写技巧。Makefile是软件构建过程中的重要工具,特别是在C/C++等编译型语言的项目中,它能自动化编译、链接等过程,提高开发效率。在本...

    跟我一起写Makefile_makefile_linux_

    "跟我一起写Makefile"的主题旨在帮助开发者掌握如何编写有效的Makefile,以便高效地管理源码并进行编译。在这个主题下,我们将深入探讨Makefile的基本结构、规则、目标、依赖关系以及变量等核心概念。 首先,...

    OTP进程池应用程序_Erlang_Makefile_下载.zip

    1. 解压`OTP进程池应用程序_Erlang_Makefile_下载.zip`到本地目录。 2. 导航到`pooler-master`目录。 3. 执行`make`命令编译源代码,生成beam文件。 4. 可以通过运行`make test`来执行测试,确保代码正确无误。 5. ...

    linux_makefile_详解.pdf

    一旦定义好编译规则,只需运行 `make` 命令,整个工程将按照预设的规则自动编译,无需手动干预每一个编译步骤,极大地提高了软件开发的效率。 #### 三、Makefile 在 Linux 下的应用 在 Unix/Linux 环境下,...

    synplify_makefile.zip_makefile VHDL_synplify_verdi

    【makefile】在软件工程中,makefile是一个控制编译和链接过程的脚本文件,它可以自动执行一系列命令以构建项目。在VHDL设计中,makefile通常用于自动化编译、综合、实现和生成比特流等步骤,极大地提高了工作效率。...

    跟我一起写Makefile_makefile_

    在Linux操作系统中,Makefile是一个强大的工具,它能够自动化编译、链接以及执行程序等任务,极大地提高了开发效率。对于任何大型项目,理解和编写Makefile都是至关重要的,因为它使得构建过程有序且可重复。下面...

    makefile_makefile_源码

    本资源“makefile_makefile_源码”显然提供了关于如何编写和使用 `Makefile` 的实例和解释。 ### Makefile 基本概念 1. **目标(Target)**:`Makefile` 中的目标是需要生成的文件,通常是可执行文件或者中间的...

    shell-and-Makefile.rar_makefile_makefile shell_shell_shell Makef

    通过阅读《跟我一起写Makefile.pdf》和《Linux主要shell命令详解.doc》这两份文档,你可以深入理解并掌握这两个关键工具的使用。这将极大地提高你在Linux开发中的效率和生产力,无论是简单的文件操作还是复杂的项目...

    gcc.rar_gcc makefile_gcc 使用_makefile_makefile gcc_makefile in en

    这个压缩包“gcc.rar_gcc makefile_gcc 使用_makefile_makefile gcc_makefile in en”包含了关于GCC的详细资料和makefile的使用指南。`gcc资料大全.chm`可能是一个包含GCC的介绍、使用教程、配置方法、错误处理等...

    跟我一起写 Makefile_keptbqi_linux_

    最后,阅读《跟我一起写 Makefile.pdf》这份文档,将提供更详细的指导,帮助你理解和优化Makefile,以适应keptbqi项目在Linux环境下的具体需求。该文档可能会涵盖Makefile的高级特性,如规则的条件判断、宏变量的...

    Linux多个Makefile文件编译,多层次Makefile文件编译和多目标Makefile文件编译

    make文件夹包含了两个子文件夹,a_b子文件夹实现多目标Makefile编译,projects子文件夹实现多层次Makefile文件编译。make文件夹中实现多个Makefile文件编译,即调用a_b和project2子文件夹中Makefile编译。

    makefile-doc.rar_doc_linux makefile_makefile_unix makefile

    在IT行业中,`Makefile`是一个非常重要的工具,特别是在软件构建和自动化编译过程中。`Makefile`主要用于管理和编译项目中的源代码,确保代码的高效构建和更新。本资源包"makefile-doc.rar"专注于讲解`Linux`和`Unix...

    GNU_Makefile.rar_GNU mikefi_GNU_Makefile_gnu makefile_makefile

    GNU Makefile是软件构建自动化工具的核心,用于管理项目中的编译和链接过程。它通过定义规则来指示如何从源代码生成可执行文件或其他目标。在本资料中,陈皓讲解了GNU Makefile的基础和应用,旨在帮助开发者更高效地...

    LinuxUnix的makefile文件.rar_linux makefile_make_makefile_unix makef

    这个压缩包中的文档“跟我一起写 Makefile”系列可能涵盖了上述各个方面,包括基本语法、高级特性、调试技巧以及最佳实践。通过学习这些文档,你可以深入了解如何编写高效、可维护的Makefile,从而更好地管理你的...

    Makefile经典教程_Makefile linux_makefile 编写

    在Linux开发环境中,Makefile是不可或缺的工具,它帮助开发者自动化构建、编译和链接程序,极大地提高了工作效率。本教程将深入讲解Makefile的核心概念、结构以及编写技巧,旨在让你快速掌握这一强大的工具。 首先...

    韦东山通用Makefile文件

    2. 顶层Makefile中的CFLAGS在编译任意一个.c文件时都会使用 3. CFLAGS EXTRA_CFLAGS CFLAGS_xxx.o 三者组成xxx.c的编译选项 二、顶层目录的Makefile: 它除了定义obj-y来指定根目录下要编进程序去的文件、子...

    跟我一起写Makefile.zip_makefile

    《跟我一起写Makefile》是针对编程开发人员的一份实用教程,主要讲解如何设计和修改Makefile,以提高编译构建项目的效率。Makefile是Unix/Linux系统中用于自动化编译、链接和其他构建任务的文本文件,它定义了目标、...

Global site tag (gtag.js) - Google Analytics