从lua调用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位库构建您还没有告诉它

我试着这样做:

我试着编译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位库构建

您还没有告诉它在哪里可以找到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-不需要空间。