gpt4 book ai didi

在C中编译嵌入式lua

转载 作者:太空狗 更新时间:2023-10-29 14:57:59 24 4
gpt4 key购买 nike

大家好,我发现这段代码将 Lua 嵌入到 C 中,但我不知道如何让 GCC 编译它。我安装了 Lua,但如何链接 Lua 库?

这是我找到的代码:

            #include <stdio.h>
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"

/* lua interpreter */
lua_State* l;

int main () {
int dofile;

/* initialize lua */
l = lua_open();

/* load lua libraries */
luaL_openlibs(l);

/* run the hello.lua script */
dofile = luaL_dofile(l, "hello.lua");

if (dofile == 0) {
/* call foo */
lua_getglobal(l,"foo");
lua_call(l,0,0);
}
else {
printf("Error, unable to run hello.lua\n");
}

/* cleanup Lua */
lua_close(l);

return 0;
}

我如何编译它?

我正在尝试编译这个命令

gcc -o embed_hello -L/users/etrosclair/Downloads/lua-5.1.4 -I/users/etrosclair/Downloads/lua-5.1.4 luaTest.c

这里是错误:

Undefined symbols for architecture x86_64:
"_luaL_newstate", referenced from:
_main in ccF0995Q.o
"_luaL_openlibs", referenced from:
_main in ccF0995Q.o
"_luaL_loadfile", referenced from:
_main in ccF0995Q.o
"_lua_pcall", referenced from:
_main in ccF0995Q.o
"_lua_getfield", referenced from:
_main in ccF0995Q.o
"_lua_call", referenced from:
_main in ccF0995Q.o
"_lua_close", referenced from:
_main in ccF0995Q.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

所有的 lua 库和头文件都在 lua-5.1.4 文件夹中,.o 文件也在那里。

谢谢

谢谢

最佳答案

取决于你是想静态编译还是动态编译。

对于静态,添加 -llua(或 lua5.1 或 lua51;取决于您的设置)

关于在C中编译嵌入式lua,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8024498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com