Closed rzumer closed 5 years ago
I'm a bit confused, are you building the SDL frontend or the libretro core? If it's the former – I only support clang
(On all platforms) and gcc
(On platforms other than macOS and Windows). If it's the latter, you should open an issue on libretro's fork of SameBoy, as they're the ones maintaining the build system for the libretro core, and I don't even have a VM where I can even compile SameBoy with MSVC to test if it works. Am I misunderstanding the problem?
The error is related to the boot ROM. I doubt it has anything to do with libretro. It's building with the default Makefile, so Clang I guess (I mixed it up due to the dependency on VS/MSVC headers).
The last 4 lines in the log are the relevant ones, the rest is just standard build output. エラー
means "Error". There is no information besides that so I don't know what is causing it exactly.
Can you confirm running CHCP 65001
before running make fixes this issue? Also, what's the exact make
command you're using, and does it include -j
? It tends to fail with cryptic errors on Windows sometimes.
I tested changing the code page at the time of the original report, and it did solve the issue. I followed the instructions in the readme, so it was just make
.
By the way, my default code page is 932.
I'm unable to reproduce this on my setup. Is there any chance you're compiling SameBoy from a path that contains non-ASCII characters?
The root is C:\Users\rzumer\Projects\SameBoy
. I just reproduced it again with no target. Sorry, actually that was not the same error. I don't have SDL set up to compile the default target, so I can only test this via libretro (that said, given that the error points to the boot ROM I doubt that it is a libretro error).
Note: to get the proper output with my code page, I need to redirect stderr to a file (e.g. make libretro 2>builderr.log
). Otherwise it is still possible to tell that there is an error, but the text is garbled. I also call make clean
before testing.
Does adding
ifeq ($(PLATFORM),windows32)
_ := $(shell chcp 65001)
endif
Right before ifeq ($(PLATFORM),Darwin)
in the Makefile fixed the problem for you?
Yes, that works for me.
This is a bit of a weird issue. Using the standard MSVC configuration (running in x64_x86 Cross Tools Command Prompt for VS 2017), compilation fails with a simple "error 1" when building the boot ROM. This seems to be due to using a non-English/Western locale (I use Japanese locale). Log below if you would like to pinpoint the cause.
There are two solutions:
Is it possible to call
CHCP 65001
when compiling on Windows with MSVC as part of the build process? If it cannot be solved at the source, that would be the best solution in my opinion. It changes the code page to UTF-8.