linux新手可能会遇到这个问题。
第6章Port drivers中
Erlang Interoperability Tutorial文档第6章Port drivers中有几个文字错误,影响编译
gcc -I/usr/local/lib/erlang/usr/include/ -o example_drv
.so -fpic -shared complex.c port_driver.c
要带.so的后缀名才行,不然装载例子中的静态库时会出现如下错误
exception exit: {error,{open_error,-10}}
我猜open_error,-10的意思应该是找不着某些库,错误代码在哪儿查我还没找到地方,先记下
另外要小心的是,在DRIVER_INIT返回的port driver entry结构中有一成员指定了erl_ddll:open_port函数的参数,所以共享库的名字还不能随便取
编译环境:RedHat linux
在MacOSX下
gcc -I/opt/local/lib/erlang/usr/include/ -L/opt/local/lib/erlang/usr/lib/ -o example_drv.so -fpic -shared -bundle -flat_namespace -undefined suppress -fno-common complex.c port_driver.c
gcc 4.2下去掉-bundle
gcc -o example_drv.so -fpic -shared -flat_namespace -undefined suppress -fno-common -I/usr/local/lib/erlang/usr/include -L/usr/local/lib/erlang/usr/lib/ complex.c port_driver.c
参见:
http://www.wagerlabs.com/blog/2008/02/erlang-ffi---in.html
第5章中的编译命令
gcc -o extprg -I/usr/local/lib/erlang/lib/erl_interface-3.5.9/include/ \
-L/usr/local/lib/erlang/lib/erl_interface-3.5.9/lib/ \
complex.c erl_comm.c ei.c \
-lerl_interface -lei -lpthread
记得加上线程库
分享到:
相关推荐
根据文档中的提示,假设已经下载并安装了Erlang 5.9.1版本。 ##### 2. 设置环境变量 - **PATH**: 添加Erlang安装目录下的`bin`目录到系统环境变量PATH中,例如:`C:\Program Files\erl5.9.1\bin`。 - **ERL_HOME**...
"erlang 中文,chm参考文档"提供了丰富的Erlang学习资源,包括"Erlang手册(5.8.2).chm"和"erlang深度分析.pdf"。这两个文件将帮助你全面理解Erlang的基础语法、并发模型、错误处理机制以及高级特性。 Erlang手册...
通过学习Erlang/OTPR11B文档,初学者可以逐步掌握Erlang的基础知识和高级特性,进而能够开发出高性能、高可靠性的分布式应用程序。此外,Erlang/OTP框架为构建复杂的应用程序提供了一套完整的设计模式和工具支持。
标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...
Erlang OTP 19.1 是一个重要的版本更新,主要...总的来说,Erlang OTP 19.1的官方文档对于理解和使用这个版本的Erlang系统至关重要,它为开发者提供了深入的技术细节和最佳实践,帮助他们构建高效且健壮的分布式应用。
Erlang/OTP Application完整例子,含代码和二进制,对于学习Erlang/OTP Application很有帮助。 配套文章http://blog.csdn.net/mycwq/article/details/12610677
GraphQL-Erlang教程该存储库包含有关graphql-erlang系统的教程。 它实现了SWAPI(的子集)作为... 要构建文档,您需要: asciidoctor-我们使用asciidoctor的标记功能来引用文档内存储库中的源代码。 我用gem install as
erlang介绍介绍opt开发方法中文资料
Erlang实战项目源代码_tutorial
**Erlang文档资料大集合** 是一个综合性的资源包,包含了丰富的Erlang学习资料,旨在帮助初学者和有经验的开发者深入理解和掌握Erlang编程语言。Erlang是一种面向并发、分布式、容错的函数式编程语言,特别适合于...
本文将对Erlang编程规则的中文翻译版本中的部分内容进行详细解析,包括Erlang术语、SW工程原则、程序、服务器和消息处理、Erlang特殊约定、常见错误以及所需文档约定等。 Erlang术语部分提到了Erlang程序的模块化...
在这个“erlang 连接学习例子”中,我们有两个核心文件:`server.erl` 和 `client.erl`,它们分别代表了一个服务器进程和客户端进程,展示了Erlang中进程间的通信机制。 `server.erl` 文件通常包含一个持续运行的...
Erlang OTP(Open Telephony Platform)是Erlang编程语言的一个核心部分,它提供了...通过深入理解这些文档和概念,开发者能够构建出符合OTP原则的、高度可靠的Erlang系统,有效地处理并发、故障恢复和系统扩展性问题。
读书笔记:ErlangOTP设计原则中文文档
阅读这两份文档将对Erlang的语法、核心概念以及如何利用其特性来构建可靠系统有全面的了解。实践中,可以通过编写简单的并发程序和模拟分布式场景来巩固所学知识。 总之,Erlang是一种强大的工具,尤其适合构建高...
Erlang/OTP R11B 文档 中文文档
在提供的文件列表中,我们可以看到一系列与Erlang编程相关的`.beam`文件,这些都是编译后Erlang模块的二进制表示。下面我们将详细探讨这些文件可能涉及的Erlang知识点。 1. **lib_misc.beam** - 这个文件可能包含...
5. Erlang环境设置:安装完成后,需要将Erlang的bin目录添加到系统的PATH环境变量中,以便于在终端中使用erl和其他Erlang工具。 6. 开发和调试:OTP提供了丰富的调试工具,如 observer 和 debugger,帮助开发者监控...
1. 数据存取:Erlang进程可以透明地读写MongoDB中的文档,实现游戏状态的实时更新。 2. 并发操作:Erlang的并发特性可以并行处理多个玩家的请求,同时与MongoDB进行数据交换,提高整体性能。 3. 错误处理:Erlang的...
- **1.2.8 一个更大的例子**:通过一个完整的例子展示Erlang的编程方式。 - **1.2.9 变量的匹配、守卫和作用域**:深入讲解Erlang中变量的行为和模式匹配。 - **1.2.10 更多关于列表**:讲解列表的高级特性。 - **...