在Xcode中设置Lua时遇到问题

问题描述:

如何在我的Xcode项目中包含Lua?在Xcode中设置Lua时遇到问题

我已经通过网站上的说明安装了Lua(卷曲,提取,使macosx安装等)。

我可以引用LUA

extern "C" { 
#include "lua.h" 
#include "lualib.h" 
#include "lauxlib.h" 
} 

但是当我去使用它,我得到一个错误(甚至写为下面的简单的东西)

lua_State *L = luaL_newstate(); 
lua_close(L); 

它告诉我:

Undefined symbols for architecture x86_64: 
    "_luaL_newstate", referenced from: 
     _main in main.o 
    "_lua_close", referenced from: 
     _main in main.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

任何意见将不胜感激。如果您需要更多信息,请告诉我,我可以编辑它。谢谢!

编辑: 添加-llua标志(SFML包含/ usr/local/lib和include)。现在变得“忽略文件/usr/local/lib/liblua.a,文件被建立用于归档,而不是被链接的体系结构(i386):/usr/local/lib/liblua.a”

EDIT2: 我将Base SDK更改为最新的OS X(OS X 10.9),并将主动架构修改为“Yes”,现在将编译。

在Xcode中,选择< ProjectName>,在左侧窗格顶部有蓝色图标(所有源都在此处),然后在主窗口中选择目标下的目标。在Build Settings选项卡中,选择全部代替基础,并设置以下参数:

Other Linker Flags = -llua 
Header Search Paths = /usr/local/include 
Library Search Paths = /usr/local/lib 

假设Lua的头被安装在/ usr /本地/包括,和在/ usr/local/lib目录liblua.a。

您也可以使用搜索字段来查找它们。

+0

我得到“忽略文件/usr/local/lib/liblua.a,文件是建立的档案,这是不是被链接的架构(i386):/usr/local/lib/liblua.a” – 2014-10-02 19:04:37

+0

似乎像Lua是为i386构建的(因为你的项目肯定是x86_64)。奇怪,因为在我的主机上,香草Lua是64位的。你可以在Terminal.app中“找到/ usr/local/lib”并将它发布到这里吗?那是什么版本的Lua? – user3125367 2014-10-02 19:09:35

+0

也可以输出“file /usr/local/lib/liblua.a”。从find中找到 – user3125367 2014-10-02 19:13:07