Dav*_*lie 6 linux lua makefile centos dynamic-library
我在Centos 6.5上编译Lua 5.2.3,编译/安装工作正常.
但是,我还需要开发库来编译另一个程序.我通常会这样做:
yum install lua-devel
Run Code Online (Sandbox Code Playgroud)
问题是安装Lua 5.1共享库,而不是5.2.3.
我可以从Centos回购中运行Lua 5.1,但是如果它是一个简单的事情(对于知道的人)来使最新版本工作,那么我会感激有人向我展示道路.对我来说,Linux makefile仍然有点呃,你知道......
编辑
我发现这个网站 - http://lua-users.org/lists/lua-l/2006-10/msg00091.html - 很久以前建议对makefile进行一些更改,但是当我运行它们时我得到了这个现在:
gcc -fPIC -o liblua.so -shared lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o
lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o
ltm.o lundump.o lvm.o lzio.o lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o
liolib.o lmathlib.o loslib.o lstrlib.o ltablib.o loadlib.o linit.o
/usr/bin/ld: lapi.o: relocation R_X86_64_32 against `luaO_nilobject_' can not be used
when making a shared object; recompile with -fPIC
Run Code Online (Sandbox Code Playgroud)
注意到我用无用的手势添加了-fPIC; 在错误中暗示的链接中没有提出建议.
编辑2 - 解决方案
好吧,虽然我最初自己发现了这个模型,但是catwell保证它能够让我坚持下去.这就是我做的......
从catwell的链接我手动编辑了Makefile.这很容易遵循(正如catwell建议的那样,忽略luaconf.h mods).
缺少的链接是更改以下行:
src/Makefile
------------
CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) -fPIC
Run Code Online (Sandbox Code Playgroud)
您正在添加-fPIC到最后.
好像现在工作正常.
感谢Etan,但我接受了catwell的答案,因为它最直接地引导了解决方案.
| 归档时间: |
|
| 查看次数: |
7818 次 |
| 最近记录: |