繁体   English   中英

从lua调用c代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM