[程式] How to Make an RPG (3)
2020-01-05 10:30=>15:30 花了5個小時造出了64bit執行檔,
至少可以看到第一個畫面,然後:
gdb: unknown target exception 0xe24c4a03 at 0x7ffd5e21a388
Program received signal ?, Unknown signal.
(gdb) bt
#0 0x00007ffd5e21a388 in RaiseException ()
from C:\WINDOWS\System32\KernelBase.dll
#1 0x00000000041803b8 in ?? ()
#2 0x0000000004180378 in ?? ()
#3 0x00000000005be350 in lj_lib_load ()
https://github.com/dinodeck/dinodeck
O:\rpg\dinodeck\src>make PLATFORM_DD=WINDOWS
自建的 OpenAL 壞了,用系統的:
C:\msys64\mingw64\bin>copy libopenal-1.dll o:\rpg\
#0 0x00000000000960ee in ?? ()
#1 0x0000000000fd21cf in alc_initconfig () at
O:\rpg\dinodeck\lib\openal-soft\Alc\ALc.c:883
#2 0x0000000000fe00e2 in alcall_once (once=once@entry=0x1041100
<alc_config_once>,
callback=callback@entry=0xfd21b0 <alc_initconfig>) at
O:\rpg\dinodeck\lib\openal-soft\common\threads.c:479
#3 0x0000000000fd3c02 in alcOpenDevice (deviceName=0x0) at
O:\rpg\dinodeck\lib\openal-soft\Alc\ALc.c:3312
#4 0x00000000004456d6 in DDAudio::DDAudio() ()
#5 0x0000000001590000 in ?? ()
#6 0x0000000000000001 in ?? ()
#7 0x000000000057edc6 in operator new(unsigned long long) ()
#8 0x0000000000000068 in ?? ()
#9 0x0000000001596218 in ?? ()
#10 0x0000000001596620 in ?? ()
#11 0x0000000001596e10 in ?? ()
#12 0x000000000097fc60 in ?? ()
#13 0x000000000044ab7c in Dinodeck::Dinodeck(std::string const&) ()
LDFLAGS+=../lib/openal-soft/build/libOpenAL32.a
LDFLAGS+=../lib/openal-soft/build/libaltonegen.dll.a
LDFLAGS+=../lib/openal-soft/build/libcommon.a
LDFLAGS+=../lib/openal-soft/build/libopenal-info.dll.a
LDFLAGS+=../lib/openal-soft/build/libtest-common.a
LIB 要在執行檔的目錄:
O:\rpg\dinodeck\lib\freetype\objs\.libs
01/05/2020 08:15 AM 3,022,633 libfreetype-6.dll
O:\rpg\dinodeck\lib\ftgl\src>copy ftgl.dll o:\rpg\
O:\rpg\dinodeck\lib\openal-soft\build>copy altonegen.exe o:\rpg\
系統的 SDL 不能用,其他函式庫也有相同的情形:
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.8.2/../../../../
x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o):
crt0_c.c:(.text.startup+0x25): undefined reference to `WinMain'
../lib/sdl-1.2.15/build/.libs/libSDL.a(SDL_video.o):
In function `SDL_SetVideoMode':
O:\rpg\dinodeck\lib\sdl-1.2.15/./src/video/SDL_video.c:594:
undefined reference to `sysevents_mouse_pressed'
libluajit-5.1.a(ljamalg.o):(.text+0x479d): undefined reference
to `__imp___acrt_iob_func'
libluajit-5.1.a(ljamalg.o):(.text+0x33382): undefined reference
to `__imp___p__fmode'
libluajit-5.1.a(ljamalg.o):(.text+0x3e596): undefined reference
to `__imp___acrt_iob_func'
libluajit-5.1.a(ljamalg.o):(.text+0x3eb78): undefined reference
to `__imp__difftime64'
用作者 github 的 SDL, configure.ac/configure 要改才支持 mingw64
https://github.com/dinodeck/sdl-1.2.15.git
O:\rpg\dinodeck\lib\sdl-1.2.15>
sh configure --enable-video --enable-directx --enable-events
-ldxguid -lwinmm
undefined reference to `IID_IDirectInputDevice2A'
undefined reference to `GUID_SysKeyboard'
x86_64-pc-msys64
checking whether we are cross compiling... no
$have_win32_gcc
configure: error:
*** Unsupported host: Please add to configure.in
O:\rpg\dinodeck\lib\sdl-1.2.15>
findstr mingw build-scripts\config.sub
mingw32)
os=-mingw32
mingw32ce)
os=-mingw32ce
os=-mingw32
| -mingw32* | -linux-gnu* | -linux-newlib* |
checking build system type...
Invalid configuration `x86_64-pc-msys': system `msys' not recognized
configure: error: /bin/sh ./build-scripts/config.sub
x86_64-pc-msys failed
https://discourse.libsdl.org/t/sdl-gcc-and-windows/8042/2
cmake -G "MinGW Makefiles" -D
CMAKE_MAKE_PROGRAM="C:\MinGW\bin\mingw32-make.exe" ..
O:\rpg\dinodeck\lib\openal-soft\build>
..\..\physfs\cmake-2.8.3-win32-x86\cmake-2.8.3-win32-x86\bin\cmake
-G "MinGW Makefiles"
-D CMAKE_MAKE_PROGRAM="C:\MinGW\bin\mingw32-make.exe" ..
O:\rpg\dinodeck\lib\ftgl\src\lib>copy libftgl.a ..\libftgl_static.a
O:\rpg\dinodeck\lib\ftgl\src\lib>copy ftgl.dll ..
findstr GLuint C:\Mingw\x86_64-w64-mingw32\include\GL\gl.h
typedef unsigned int GLuint;
pacman -S mingw-w64-x86_64-freeglut
cmake 用 physfs 目錄的 .zip 解開的執行檔
O:\rpg\dinodeck\lib\physfs\build2>
..\cmake-2.8.3-win32-x86\cmake-2.8.3-win32-x86\bin\cmake -G "MinGW Makefiles"
-D CMAKE_MAKE_PROGRAM="C:\MinGW\bin\mingw32-make.exe" ..\..\PhysFS
luajit 要用 set MSYSTEM=MINGW64
https://github.com/openai/retro/issues/30
set MSYSTEM=MINGW64
O:\rpg\dinodeck\lib\LuaJIT\src>make libluajit.a
AR libluajit.a
lj_vm.s:6: Error: unknown pseudo-op: `.hidden'
lj_vm.s:7: Warning: .type pseudo-op used outside of .def/.endef: ignored.
https://hustlei.github.io/2018/11/msys2-for-win.html
--
https://youtu.be/MMWBPklrRB4
小雞逼逼(崩潰版)
https://youtu.be/KlZL1hqGxDg
《江南夜色》
https://youtu.be/WIW16vMdrZU
《告白氣球》
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.161.218.59 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1578847765.A.DDB.html
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章