C++ 在64位OS X上构建和使用32位Lua时出现问题
我在使用我的内置Lua时遇到困难 要构建我的小项目,我将使用:C++ 在64位OS X上构建和使用32位Lua时出现问题,c++,c,gcc,makefile,lua,C++,C,Gcc,Makefile,Lua,我在使用我的内置Lua时遇到困难 要构建我的小项目,我将使用: gcc -m32 -arch i386 -I ~/Documents/lua-5.1.4/include -L ~/Documents/lua-5.1.4/lib -llua -mconsole -sectcreate __TEXT __info_plist ./Info.plist -o LuaProject -masm=intel LuaProject.cpp 我用“makemacosx测试”构建了Lua。为了使其构建为32位
gcc -m32 -arch i386 -I ~/Documents/lua-5.1.4/include -L ~/Documents/lua-5.1.4/lib -llua -mconsole -sectcreate __TEXT __info_plist ./Info.plist -o LuaProject -masm=intel LuaProject.cpp
我用“makemacosx测试”构建了Lua。为了使其构建为32位,我修改了src/Makefile,使顶部变成:
CC= gcc
CFLAGS= -m32 -arch i386 -O2 -Wall $(MYCFLAGS)
AR= ar rcu
RANLIB= ranlib
RM= rm -f
LIBS= -lm $(MYLIBS)
MYCFLAGS=
MYLDFLAGS= -m32 -arch i386
MYLIBS=
这似乎是32位的。我所做的只是将-m32-arch i386添加到CFLAGS中(MYCFLAGS没有影响任何东西),并将-m32-archi386添加到MYLDFLAGS中。在它分别对-m32和-arch i386都不起作用之后,我添加了这两个(可能不是最好的逻辑),但没有任何改变。构建工作正常,所以我“sudo make install local”,它创建了我用来编译项目的漂亮文件夹
gcc的输出结果是:
Undefined symbols for architecture i386:
"luaL_newstate()", referenced from:
_main in LuaProject-15f700.o
"luaL_openlibs(lua_State*)", referenced from:
_main in LuaProject-15f700.o
"luaL_loadbuffer(lua_State*, char const*, unsigned long, char const*)", referenced from:
_main in LuaProject-15f700.o
"lua_pcall(lua_State*, int, int, int)", referenced from:
_main in LuaProject-15f700.o
ld: symbol(s) not found for architecture i386
我希望包括所有我需要的(lua.h、lauxlib.h、lualib.h),并且没有关于-llua本身的错误,所以我不明白为什么这不起作用
< >我不想用完整的Lua MaFe文件来解决问题,但如果需要的话我可以上传。你是否用<代码> -M32 - ARCKII66编译了你的项目?是的,这是第一个代码框,编译日志是C++模式。通常Lua是在“C”中构建的(这不是硬性要求,用户可以按照自己的意愿编译)。也许这是个问题?是的,我昨天在8个小时的Lua构建和文件混乱后发现。。。我真的希望错误信息更清楚,但我想它是正确的,不能指望编译器做所有的事情。包括lua.hpp可以修复其他人遇到相同问题时的问题。