首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在RHEL6.6 6.6中生成“luac”可执行文件时出错

在RHEL6.6 6.6中生成“luac”可执行文件时出错
EN

Stack Overflow用户
提问于 2015-11-27 07:17:13
回答 1查看 191关注 0票数 0

我试图在RedHatEnterpriseLinux6.6平台上构建lua-5.3.1。将构建以下二进制文件:

  1. 共享库: liblua.so
  2. 可执行文件: lua
  3. 可执行文件: luac

我在提供的Makefile中做了以下更改:

现有:

代码语言:javascript
复制
CC= gcc -std=gnu99 
LUA_A=  liblua.a 
$(LUA_A): $(BASE_O)
          $(AR) $@ $(BASE_O)
          $(RANLIB) $@

修改:

代码语言:javascript
复制
CC= gcc -fPIC
LUA_A=  liblua.so
$(LUA_A): $(BASE_O)
          $(CC) -mthreads -shared -o $(LUA_A) $(BASE_O)

“liblua.so”和“lua”已经使用修改后的Makefile成功构建。但是,在“luac”构建过程中,链接错误将出现:

代码语言:javascript
复制
 gcc -fPIC -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX    -c -o luac.o luac.c
 gcc -fPIC -o luac   luac.o liblua.so -lm -Wl,-E -ldl -lreadline
 luac.o: In function `PrintFunction':
 luac.c:(.text+0x947): undefined reference to `luaP_opnames'
 luac.c:(.text+0x963): undefined reference to `luaP_opmodes'
 luac.o: In function `pmain':
 luac.c:(.text+0x11db): undefined reference to `luaU_dump'
 /usr/bin/ld: luac: hidden symbol `luaU_dump' isn't defined
 /usr/bin/ld: final link failed: Nonrepresentable section on output
 collect2: ld returned 1 exit status
 make[1]: *** [luac] Error 1
 make[1]: Leaving directory `/disk1/u10rhel66/lua-5.3.1/src' 
 make: *** [linux] Error 2

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-11-27 09:41:28

必须使用luac静态链接构建liblua.a

如果您确实希望动态链接luac,请尝试如下:

  • LUAI_DDEFLUAI_DDEClopcodes.clopcodes.h中删除
  • LUAI_FUNC中删除lundump.h
  • 重建
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33952101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档