Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-142-generic x86_64)
lake@localhost:/localrepo/jxiazi/code/Lua$ cp -ar -p lua-5.3.5 ~/local/^C
lake@localhost:/localrepo/jxiazi/code/Lua$ cd ..
lake@localhost:/localrepo/jxiazi/code$ cp -ar -p Lua ~/local/
lake@localhost:/localrepo/jxiazi/code$ cd ~/local
lake@localhost:~/local/Lua$ ls
lua-5.3.5
lake@localhost:~/local/Lua$ cd lua-5.3.5/
lake@localhost:~/local/Lua/lua-5.3.5$ ls
Makefile README doc src
lake@localhost:~/local/Lua/lua-5.3.5$ vi Makefile
lake@localhost:~/local/Lua/lua-5.3.5$ vi Makefile
lake@localhost:~/local/Lua/lua-5.3.5$ vi Makefile
lake@localhost:~/local/Lua/lua-5.3.5$ git log
fatal: Not a git repository (or any parent up to mount point /localrepo)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
lake@localhost:~/local/Lua/lua-5.3.5$ make
Please do 'make PLATFORM' where PLATFORM is one of these:
aix bsd c89 freebsd generic linux macosx mingw posix solaris
See doc/readme.html for complete instructions.
lake@localhost:~/local/Lua/lua-5.3.5$ make linux
cd src && make linux
make[1]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
make all SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
make[2]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_LINUX -c -o lua.o lua.c
lua.c:82:31: fatal error: readline/readline.h: No such file or directory
compilation terminated.
<builtin>: recipe for target 'lua.o' failed
make[2]: *** [lua.o] Error 1
make[2]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
Makefile:110: recipe for target 'linux' failed
make[1]: *** [linux] Error 2
make[1]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
Makefile:55: recipe for target 'linux' failed
make: *** [linux] Error 2
lake@localhost:~/local/Lua/lua-5.3.5$ vi README
lake@localhost:~/local/Lua/lua-5.3.5$ vim doc/readme.html
lake@localhost:~/local/Lua/lua-5.3.5$ make posix
cd src && make posix
make[1]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
make all SYSCFLAGS="-DLUA_USE_POSIX"
make[2]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lua.o lua.c
gcc -std=gnu99 -o lua lua.o liblua.a -lm
liblua.a(loadlib.o): In function `lookforfunc':
loadlib.c:(.text+0x502): undefined reference to `dlsym'
loadlib.c:(.text+0x549): undefined reference to `dlerror'
loadlib.c:(.text+0x576): undefined reference to `dlopen'
loadlib.c:(.text+0x5ed): undefined reference to `dlerror'
liblua.a(loadlib.o): In function `gctm':
loadlib.c:(.text+0x781): undefined reference to `dlclose'
collect2: error: ld returned 1 exit status
Makefile:63: recipe for target 'lua' failed
make[2]: *** [lua] Error 1
make[2]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
Makefile:122: recipe for target 'posix' failed
make[1]: *** [posix] Error 2
make[1]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
Makefile:55: recipe for target 'posix' failed
make: *** [posix] Error 2
lake@localhost:~/local/Lua/lua-5.3.5$ make clean
cd src && make clean
make[1]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
rm -f liblua.a lua luac 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 lutf8lib.o loadlib.o linit.o lua.o luac.o
make[1]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
lake@localhost:~/local/Lua/lua-5.3.5$ make posix
cd src && make posix
make[1]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
make all SYSCFLAGS="-DLUA_USE_POSIX"
make[2]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lapi.o lapi.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lcode.o lcode.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lctype.o lctype.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o ldebug.o ldebug.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o ldo.o ldo.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o ldump.o ldump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lfunc.o lfunc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lgc.o lgc.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o llex.o llex.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lmem.o lmem.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lobject.o lobject.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lopcodes.o lopcodes.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lparser.o lparser.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lstate.o lstate.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lstring.o lstring.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o ltable.o ltable.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o ltm.o ltm.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lundump.o lundump.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lvm.o lvm.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lzio.o lzio.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lauxlib.o lauxlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lbaselib.o lbaselib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lbitlib.o lbitlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lcorolib.o lcorolib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o ldblib.o ldblib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o liolib.o liolib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lmathlib.o lmathlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o loslib.o loslib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lstrlib.o lstrlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o ltablib.o ltablib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lutf8lib.o lutf8lib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o loadlib.o loadlib.c
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o linit.o linit.c
ar rcu liblua.a 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 lutf8lib.o loadlib.o linit.o
ar: `u' modifier ignored since `D' is the default (see `U')
ranlib liblua.a
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o lua.o lua.c
gcc -std=gnu99 -o lua lua.o liblua.a -lm
gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_COMPAT_5_2 -DLUA_USE_POSIX -c -o luac.o luac.c
gcc -std=gnu99 -o luac luac.o liblua.a -lm
make[2]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
make[1]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
lake@localhost:~/local/Lua/lua-5.3.5$ make posix -j32
cd src && make posix
make[1]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
make all SYSCFLAGS="-DLUA_USE_POSIX"
make[2]: Entering directory '/localrepo/lake/Lua/lua-5.3.5/src'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
make[1]: Leaving directory '/localrepo/lake/Lua/lua-5.3.5/src'
lake@localhost:~/local/Lua/lua-5.3.5$ make
Please do 'make PLATFORM' where PLATFORM is one of these:
aix bsd c89 freebsd generic linux macosx mingw posix solaris
See doc/readme.html for complete instructions.
lake@localhost:~/local/Lua/lua-5.3.5$ vim Makefile
lake@localhost:~/local/Lua/lua-5.3.5$ vim Makefile
lake@localhost:~/local/Lua/lua-5.3.5$ make install -j32
cd src && mkdir -p /home/lake/usr/bin /home/lake/usr/include /home/lake/usr/lib /home/lake/usr/man/man1 /home/lake/usr/share/lua/5.3 /home/lake/usr/lib/lua/5.3
cd src && install -p -m 0755 lua luac /home/lake/usr/bin
cd src && install -p -m 0644 lua.h luaconf.h lualib.h lauxlib.h lua.hpp /home/lake/usr/include
cd src && install -p -m 0644 liblua.a /home/lake/usr/lib
cd doc && install -p -m 0644 lua.1 luac.1 /home/lake/usr/man/man1
lake@localhost:~/local/Lua/lua-5.3.5$ lua
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
> ext
nil
> quit
nil
>
lake@localhost:~/local/Lua/lua-5.3.5$ lua
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio
> 2+1
3
> 1+1
2
> > quit
nil
>
lake@localhost:~/local/Lua/lua-5.3.5$

本文详细记录了在Ubuntu16.04.3 LTS环境下从源码编译安装Lua 5.3.5的过程,包括解决编译错误、配置编译选项、并成功进行安装。此外,还展示了Lua的基本使用,如简单的算术运算。


被折叠的 条评论
为什么被折叠?



