Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在64位OS X上构建和使用32位Lua时出现问题_C++_C_Gcc_Makefile_Lua - Fatal编程技术网

C++ 在64位OS X上构建和使用32位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位

我在使用我的内置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位,我修改了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可以修复其他人遇到相同问题时的问题。