在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。
您也可以使用搜索字段来查找它们。
我得到“忽略文件/usr/local/lib/liblua.a,文件是建立的档案,这是不是被链接的架构(i386):/usr/local/lib/liblua.a” – 2014-10-02 19:04:37
似乎像Lua是为i386构建的(因为你的项目肯定是x86_64)。奇怪,因为在我的主机上,香草Lua是64位的。你可以在Terminal.app中“找到/ usr/local/lib”并将它发布到这里吗?那是什么版本的Lua? – user3125367 2014-10-02 19:09:35
也可以输出“file /usr/local/lib/liblua.a”。从find中找到 – user3125367 2014-10-02 19:13:07