关注到 Lua,是源于看到一个 《最值得阅读学习的 10 个 C 语言开源项目代码》 的 post,里面提到 Lua 这个项目,然后就想着去看看 Lua 的源码,大概这样。

粗略过了一下云风大神的《Lua 源码欣赏》,想着自己怎么开始,然后就有着在 Xcode 建了一个 C Project,然后调用 Lua 代码的想法,所以就有了这篇博客,但其实也只是拾人牙慧,主要供自己以后参考。

  • 使用 Xcode 新建一个 C Project,在 File > New > Project 下新建一个 Project。但是新建的是 macOS 下的 Command Line Tool。其它的就跟你新建项目一样了,并无太特别的地方。

macOS-command-line-tool.png

  • 然后可以把 Simple Lua Api Example 的 C 代码复制到 main.c。为了方便,我会把 status = luaL_loadfile(L, "script.lua"); 改成 status = luaL_loadstring(L, "print('a')");

  • 这个时候,你就会发现在 include 那些地方报错了,在命令行环境下,我们是可以这么执行的 gcc -o test test.c -I/Users/Roger/.asdf/installs/lua/5.3.3/include -L/Users/Roger/.asdf/installs/lua/5.3.3/lib -llua -lm(我使用 asdf 做版本管理)。所以我们需要解决怎么把 Lua 的头文件,库加到 Xcode 里面。可以参考 How to Link C++ Librares in XCode [Specifically Magick++] 来把命令行的设置加到 Xcode 里面就可以了。简单来说就是增加 Xcode Build Setting 里面的 Header Search PathsLibrary Search PathsOther Linker Flags,如下面两张图所示。

Lua-Search-path.png

Lua-Linking-flag.png

  • 最后,整个项目就可以跑起来了😏