也许很多人碰上过, 用example1_lid:start()会碰上如下错误:
** exited: {error,could_not_load_driver} **
用gdb跟了一下, 发现其实load driver是没有问题, 问题出在load driver之后的版本匹配, driver_incorrect_version.
解决办法很简单,两步:
1. 把example1_lid.c中的
#include "erl_driver.h" 改成
#include <<erl_driver.h>erl_driver.h><erl_driver.h><erl_driver.h></erl_driver.h></erl_driver.h></erl_driver.h><erl_driver.h><erl_driver.h>
2. 然后把Makefile中的
gcc -o example1_drv.so -fpic -shared example1.c example1_lid.c
这一行改成:
gcc -I/usr/local/lib/erlang/usr/include -o example1_drv.so -fpic -shared example1.c example1_lid.c
做完这两步就可以啦.
make之后试试就没问题.</erl_driver.h></erl_driver.h><erl_driver.h><erl_driver.h></erl_driver.h></erl_driver.h>
** exited: {error,could_not_load_driver} **
用gdb跟了一下, 发现其实load driver是没有问题, 问题出在load driver之后的版本匹配, driver_incorrect_version.
解决办法很简单,两步:
1. 把example1_lid.c中的
#include "erl_driver.h" 改成
#include <<erl_driver.h>erl_driver.h><erl_driver.h><erl_driver.h></erl_driver.h></erl_driver.h></erl_driver.h><erl_driver.h><erl_driver.h>
2. 然后把Makefile中的
gcc -o example1_drv.so -fpic -shared example1.c example1_lid.c
这一行改成:
gcc -I/usr/local/lib/erlang/usr/include -o example1_drv.so -fpic -shared example1.c example1_lid.c
做完这两步就可以啦.
make之后试试就没问题.</erl_driver.h></erl_driver.h><erl_driver.h><erl_driver.h></erl_driver.h></erl_driver.h>
解决Erlang驱动版本错误
本文介绍了解决使用Erlang驱动时遇到的“could_not_load_driver”错误的方法。通过修改example1_lid.c文件中的包含指令以及Makefile中的编译选项,可以成功解决因版本不匹配导致的问题。
171

被折叠的 条评论
为什么被折叠?



