Lua kompilieren - .so Dateien erstellen?

Ich kompiliere Lua 5.2.3 unter Centos 6.5 und die Kompilierung / Installation funktioniert einwandfrei.

Ich benötige jedoch auch die Entwicklungsbibliotheken, damit ein anderes Programm kompiliert werden kann. Ich würde diese normalerweise folgendermaßen installieren:

yum install lua-devel

Das Problem ist, dass die gemeinsam genutzten Lua 5.1-Bibliotheken installiert werden, nicht die 5.2.3-Bibliotheken.

I könnten laufen Sie einfach mit Lua 5.1 vom Centos-Repo aus, aber wenn es einfach ist (für jemanden, der es weiß), die neueste Version zum Laufen zu bringen, wäre ich dankbar, wenn jemand mir den Weg zeigt. Für mich sind die Linux-Makefiles noch ein bisschen äh, na ja, weißt du ...

BEARBEITEN

Ich habe diese Seite gefunden -http://lua-users.org/lists/lua-l/2006-10/msg00091.html - von vor langer Zeit, die einige Änderungen an den Makefiles vorschlug, aber ich bekomme das, wenn ich sie jetzt starte:

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

Ich stelle fest, dass ich das -fPIC in einer sinnlosen Geste hinzugefügt habe. Das wurde in dem Link, auf den im Fehler hingewiesen wurde, nicht vorgeschlagen.

EDIT 2 - LÖSUNG

Okay, obwohl ich diesen Mod ursprünglich selbst gefunden hatte, war es Catwells Gewissheit, dass er funktionierte, was mich zum Durchhalten brachte. Folgendes habe ich getan ...

Voncatwells link Ich habe die Makefiles manuell bearbeitet. Es ist leicht zu befolgen (und wie Catwell vorschlägt, ignorieren Sie die luaconf.h-Mods).

Das fehlende Glied besteht darin, die folgende Zeile zu ändern:

src/Makefile
------------
CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) -fPIC

Sie fügen das -fPIC am Ende hinzu.

Scheint jetzt gut zu funktionieren.

Vielen Dank an Etan, aber ich akzeptiere die Antwort von catwell, da sie direkt zur Lösung geführt hat.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage