[英]calling c code from lua
我试着遵循这个: http : //www.troubleshooters.com/codecorn/lua/lua_lua_calls_c.htm
我试着按照指南中的说法编译c代码:
gcc -Wall -shared -fPIC -o power.so -I/usr/include/lua5.1 -llua5.1 hellofunc.c
但是我得到了http://pastebin.com/KQvA0qFH ,当我忘记包含一个lib或框架但我做了-I / usr / include / lua5.1时,我认为这是你得到的错误
如果重要的话我正在运行os x并且我用brew安装了lua
你还没告诉它在哪里可以找到lua5.1
使用-L
告诉编译器库所在的位置
从您自己的示例页面开始,请查看http://www.troubleshooters.com/codecorn/lua/lua_c_calls_lua.htm#_Anatomy_of_a_Lua_Call
我还不能评论所以我必须发布它作为答案但是
从错误中我猜你需要使用-m32开关进行编译才能构建32位库
这适用于我,但我不使用自制软件。 Lua安装在/usr/local
。
% gcc -Wall -bundle -undefined dynamic_lookup -fPIC -o power.so hellofunc.c
% lua
Lua 5.2.4 Copyright (C) 1994-2015 Lua.org, PUC-Rio
> require"power"
> print(square(2))
Top of square(), nbr=2.000000
4
> print(cube(2))
Top of cube(), number=2.000000
8
请注意,在编译行使用-bundle -undefined dynamic_lookup
代替-shared
和缺乏-llua5.1
。
通常,您不应将Lua核心库链接到动态库(例如此库)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.