سلام!
می خواستم Lua رو روی Fedora 20 برای cross compile ،Windows کنم...
این طور که فهمیدم باید بنویسم make و جلوش platform رو مشخص کنم... برای Linux می زنم linux و مشکلی ندارم... اما برای Windows... الان چند تا گزینه هست:
aix ansi bsd freebsd generic linux macosx mingw posix solaris
خوب من می زنم mingw... کامپایلر رو هم از کامپایلر پیش فرض به x86_64-w64-mingw32-gcc تغییر می دم... قبلش make clean رو هم می زنم... اما به مشکل می خورم... خروجی make mingw CC=x86_64-w64-mingw32-gcc این هست:
cd src && make mingw
make[1]: Entering directory `/home/bloomy/Desktop/lua/src'
make "LUA_A=lua52.dll" "LUA_T=lua.exe" \
"AR=x86_64-w64-mingw32-gcc -shared -o" "RANLIB=strip --strip-unneeded" \
"SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
make[2]: Entering directory `/home/bloomy/Desktop/lua/src'
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lua.o lua.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lapi.o lapi.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lcode.o lcode.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lctype.o lctype.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ldebug.o ldebug.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ldo.o ldo.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ldump.o ldump.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lfunc.o lfunc.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lgc.o lgc.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o llex.o llex.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lmem.o lmem.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lobject.o lobject.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lopcodes.o lopcodes.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lparser.o lparser.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lstate.o lstate.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lstring.o lstring.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ltable.o ltable.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ltm.o ltm.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lundump.o lundump.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lvm.o lvm.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lzio.o lzio.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lauxlib.o lauxlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lbaselib.o lbaselib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lbitlib.o lbitlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lcorolib.o lcorolib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ldblib.o ldblib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o liolib.o liolib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lmathlib.o lmathlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o loslib.o loslib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lstrlib.o lstrlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ltablib.o ltablib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o loadlib.o loadlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o linit.o linit.c
x86_64-w64-mingw32-gcc -shared -o lua52.dll 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
strip --strip-unneeded lua52.dll
x86_64-w64-mingw32-gcc -o lua.exe -s lua.o lua52.dll -lm
make[2]: Leaving directory `/home/bloomy/Desktop/lua/src'
make "LUAC_T=luac.exe" luac.exe
make[2]: Entering directory `/home/bloomy/Desktop/lua/src'
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -c -o luac.o luac.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 loadlib.o linit.o
ranlib liblua.a
x86_64-w64-mingw32-gcc -o luac.exe luac.o liblua.a -lm
liblua.a: could not read symbols: Archive has no index; run ranlib to add one
collect2: error: ld returned 1 exit status
make[2]: *** [luac.exe] Error 1
make[2]: Leaving directory `/home/bloomy/Desktop/lua/src'
make[1]: *** [mingw] Error 2
make[1]: Leaving directory `/home/bloomy/Desktop/lua/src'
make: *** [mingw] Error 2
یعنی چی؟... چی کار باید بکنم؟...
ویرایش:
خوب الان مشکل قبلی حل شد ولی یه چیز جدید اومده! وقتی این رو می زنم:
make mingw CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-gcc-ar WINDRES=x86_64-w64-mingw32-gcc-windres RANLIB=x86_64-w64-mingw32-gcc-ranlib
می گه:
cd src && make mingw
make[1]: Entering directory `/home/bloomy/Desktop/lua-1/luajit-2/src'
make "LUA_A=lua52.dll" "LUA_T=lua.exe" \
"AR=x86_64-w64-mingw32-gcc -shared -o" "RANLIB=strip --strip-unneeded" \
"SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
make[2]: Entering directory `/home/bloomy/Desktop/lua-1/luajit-2/src'
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lua.o lua.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lapi.o lapi.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lcode.o lcode.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lctype.o lctype.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ldebug.o ldebug.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ldo.o ldo.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ldump.o ldump.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lfunc.o lfunc.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lgc.o lgc.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o llex.o llex.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lmem.o lmem.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lobject.o lobject.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lopcodes.o lopcodes.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lparser.o lparser.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lstate.o lstate.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lstring.o lstring.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ltable.o ltable.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ltm.o ltm.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lundump.o lundump.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lvm.o lvm.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lzio.o lzio.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lauxlib.o lauxlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lbaselib.o lbaselib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lbitlib.o lbitlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lcorolib.o lcorolib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ldblib.o ldblib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o liolib.o liolib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lmathlib.o lmathlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o loslib.o loslib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o lstrlib.o lstrlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o ltablib.o ltablib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o loadlib.o loadlib.c
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -DLUA_BUILD_AS_DLL -c -o linit.o linit.c
x86_64-w64-mingw32-gcc -shared -o lua52.dll 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
strip --strip-unneeded lua52.dll
x86_64-w64-mingw32-gcc -o lua.exe -s lua.o lua52.dll -lm
make[2]: Leaving directory `/home/bloomy/Desktop/lua-1/luajit-2/src'
make "LUAC_T=luac.exe" luac.exe
make[2]: Entering directory `/home/bloomy/Desktop/lua-1/luajit-2/src'
x86_64-w64-mingw32-gcc -O2 -Wall -DLUA_COMPAT_ALL -c -o luac.o luac.c
x86_64-w64-mingw32-gcc-ar 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 loadlib.o linit.o
sorry - this program has been built without plugin support
make[2]: *** [liblua.a] Error 1
make[2]: Leaving directory `/home/bloomy/Desktop/lua-1/luajit-2/src'
make[1]: *** [mingw] Error 2
make[1]: Leaving directory `/home/bloomy/Desktop/lua-1/luajit-2/src'
make: *** [mingw] Error 2
متوجه نمی شم منظور از این حرفا چیه!:
sorry - this program has been built without plugin support
make[2]: *** [liblua.a] Error 1
make[2]: Leaving directory `/home/bloomy/Desktop/lua-1/luajit-2/src'
make[1]: *** [mingw] Error 2
make[1]: Leaving directory `/home/bloomy/Desktop/lua-1/luajit-2/src'
make: *** [mingw] Error 2