# gcc -lm -llua hello.c -o hello.out
/usr/local/lib/liblua.a(loadlib.o): In function `ll_loadfunc':
loadlib.c:(.text+0x947): undefined reference to `dlsym'
loadlib.c:(.text+0x954): undefined reference to `dlerror'
loadlib.c:(.text+0xa2c): undefined reference to `dlopen'
loadlib.c:(.text+0xa41): undefined reference to `dlerror'
/usr/local/lib/liblua.a(loadlib.o): In function `gctm':
loadlib.c:(.text+0x104e): undefined reference to `dlclose'
collect2: ld returned 1 exit status
make: *** [hello.o]
/usr/local/lib/liblua.a(loadlib.o): In function `ll_loadfunc':
loadlib.c:(.text+0x947): undefined reference to `dlsym'
loadlib.c:(.text+0x954): undefined reference to `dlerror'
loadlib.c:(.text+0xa2c): undefined reference to `dlopen'
loadlib.c:(.text+0xa41): undefined reference to `dlerror'
/usr/local/lib/liblua.a(loadlib.o): In function `gctm':
loadlib.c:(.text+0x104e): undefined reference to `dlclose'
collect2: ld returned 1 exit status
make: *** [hello.o]
Lua 5.0에서는 "#gcc -llua -llualib hello.c -o hello.out"로 해서 컴파일이 되었는데 5.1이 되면서 무언가 달라졌나 보다. 함수도 많이 달라졌고.. -_-; 젠장헐...
1. 우선 5.1에서는 lualib.a가 존재하지 않는다. 고로 5.0때처럼 "-llualib은 사용하지 않는다."
2. 5.1에서는수학관련 함수들 "pow / sin / cos / tan / ... " 들이 사용되므로 "-lm 을 추가한다."
3. dynamic linking loader를 사용하므로 "-ldl을 추가한다."
아래와 같이 컴파일을 해서 성공...
# gcc hello.c -lm -llua -ldl -o hello.out