从lua调用c代码
我试着这样做: 我试着编译c代码,正如指南中所说:从lua调用c代码,c,lua,language-binding,C,Lua,Language Binding,我试着这样做: 我试着编译c代码,正如指南中所说: gcc-Wall-shared-fPIC-o power.so-I/usr/include/lua5.1-llua5.1 hellofunc.c 但是我发现了一个错误,当您忘记包含lib或框架时,我发现了这个错误——I/usr/include/lua5.1 如果有问题,我正在运行os x,并且用brew安装了lua,我还不能发表评论,所以我必须将其作为答案发布,但是 根据这个错误,我猜您需要使用-m32开关编译,以便为32位库构建您还没有告诉它
gcc-Wall-shared-fPIC-o power.so-I/usr/include/lua5.1-llua5.1 hellofunc.c
但是我发现了一个错误,当您忘记包含lib或框架时,我发现了这个错误——I/usr/include/lua5.1
如果有问题,我正在运行os x,并且用brew安装了lua,我还不能发表评论,所以我必须将其作为答案发布,但是
根据这个错误,我猜您需要使用-m32开关编译,以便为32位库构建您还没有告诉它在哪里可以找到lua5.1 使用
-L
告诉编译器库的位置
从您自己的示例页面上可以看到,这对我很有用,但我不使用自制软件。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核心库链接到像这样的动态库。似乎找不到
-llua5.1
。你需要找到Lua库在哪里。也许自制软件正在安装更新版本的Lua。@pytheos-不需要空间。