XenonRecomp icon indicating copy to clipboard operation
XenonRecomp copied to clipboard

Building instructions very unclear

Open TheLettuceClub opened this issue 9 months ago • 25 comments

As the title says. The Readme's compilation instructions are unclear. I've seen elsewhere here that the devs are busy handling the Sonic Unleashed so I don't expect this to get fixed quickly.

Here's what I did, despite the fact that it didn't generate the executables mentioned in the readme:

  1. clone the repo
  2. initalized submodules
  3. created a build directory and went into it
  4. ran "cmake .. -DCMAKE_BUILD_TYPE=Release"
  5. ran "msbuild XenonRecom-All.sln -t:Clean -p:Configuration=Release" (omitting the release config param made the build fail)

Then there weren't any exes in the place I looked. If someone can point me to better instructions or just update them in the readme, that'd be great for everyone!

TheLettuceClub avatar Mar 03 '25 03:03 TheLettuceClub

I'm in the same boat. Can't find any exes. I figured it was the errors I was getting in Visual Studio.

KinglyNerd33 avatar Mar 03 '25 03:03 KinglyNerd33

If you guys struggle with Visual Studio, you might want to give MSYS2 a try, I wrote the steps in my fork of the project, hopefully it will be good enough

Sakimotor avatar Mar 03 '25 08:03 Sakimotor

If you guys struggle with Visual Studio, you might want to give MSYS2 a try, I wrote the steps in my fork of the project, hopefully it will be good enough

Thanks! I got Msys2 up and running, installed the necssary packages, and now im stuck at the cloned repo part. I cloned through msys2 and it says it's done but I can't find the repo. It's not in my C drive. When I did this with Visual Studio, I found it in C/Users/Me/XenonRecomp but it doesn't seem to know where it even is. Accessing my C drive by going into the /c folder of msys2 doesn't seem to work and I can't put the command cmake -DCMAKE_BUILD_TYPE=Debug.

Everytime I get so close, There's always something! Thank you so much for your time if you can somehow help with this! It really means the world

KinglyNerd33 avatar Mar 03 '25 09:03 KinglyNerd33

If you guys struggle with Visual Studio, you might want to give MSYS2 a try, I wrote the steps in my fork of the project, hopefully it will be good enough

Thanks! I got Msys2 up and running, installed the necssary packages, and now im stuck at the cloned repo part. I cloned through msys2 and it says it's done but I can't find the repo. It's not in my C drive. When I did this with Visual Studio, I found it in C/Users/Me/XenonRecomp but it doesn't seem to know where it even is. Accessing my C drive by going into the /c folder of msys2 doesn't seem to work and I can't put the command cmake -DCMAKE_BUILD_TYPE=Debug.

Everytime I get so close, There's always something! Thank you so much for your time if you can somehow help with this! It really means the world

I vaguely remember /mnt/c/ being the correct directory. This might've been on WSL though, I am unsure.

FujiwaraChoki avatar Mar 03 '25 10:03 FujiwaraChoki

If you guys struggle with Visual Studio, you might want to give MSYS2 a try, I wrote the steps in my fork of the project, hopefully it will be good enough

Thanks! I got Msys2 up and running, installed the necssary packages, and now im stuck at the cloned repo part. I cloned through msys2 and it says it's done but I can't find the repo. It's not in my C drive. When I did this with Visual Studio, I found it in C/Users/Me/XenonRecomp but it doesn't seem to know where it even is. Accessing my C drive by going into the /c folder of msys2 doesn't seem to work and I can't put the command cmake -DCMAKE_BUILD_TYPE=Debug.

Everytime I get so close, There's always something! Thank you so much for your time if you can somehow help with this! It really means the world

Where did you clone the repo from, your MSYS2 ?

Sakimotor avatar Mar 03 '25 14:03 Sakimotor

If you guys struggle with Visual Studio, you might want to give MSYS2 a try, I wrote the steps in my fork of the project, hopefully it will be good enough

Thanks for the instructions! I tried it on my machine but ninja kept throwing errors saying it couldn't find files that did exist. It was also printing Windows-style paths even though I ran it in the MSYS2 terminal so not sure what's going on there.

TheLettuceClub avatar Mar 03 '25 15:03 TheLettuceClub

If you guys struggle with Visual Studio, you might want to give MSYS2 a try, I wrote the steps in my fork of the project, hopefully it will be good enough

Thanks! I got Msys2 up and running, installed the necssary packages, and now im stuck at the cloned repo part. I cloned through msys2 and it says it's done but I can't find the repo. It's not in my C drive. When I did this with Visual Studio, I found it in C/Users/Me/XenonRecomp but it doesn't seem to know where it even is. Accessing my C drive by going into the /c folder of msys2 doesn't seem to work and I can't put the command cmake -DCMAKE_BUILD_TYPE=Debug. Everytime I get so close, There's always something! Thank you so much for your time if you can somehow help with this! It really means the world

Where did you clone the repo from, your MSYS2 ?

I try cloning it with Git and it would make the folder but couldn't find where the folder was, so I tried to clone it with MSYS2 and got the same results

KinglyNerd33 avatar Mar 03 '25 16:03 KinglyNerd33

If you guys struggle with Visual Studio, you might want to give MSYS2 a try, I wrote the steps in my fork of the project, hopefully it will be good enough

Thanks! I got Msys2 up and running, installed the necssary packages, and now im stuck at the cloned repo part. I cloned through msys2 and it says it's done but I can't find the repo. It's not in my C drive. When I did this with Visual Studio, I found it in C/Users/Me/XenonRecomp but it doesn't seem to know where it even is. Accessing my C drive by going into the /c folder of msys2 doesn't seem to work and I can't put the command cmake -DCMAKE_BUILD_TYPE=Debug. Everytime I get so close, There's always something! Thank you so much for your time if you can somehow help with this! It really means the world

Where did you clone the repo from, your MSYS2 ?

I try cloning it with Git and it would make the folder but couldn't find where the folder was, so I tried to clone it with MSYS2 and got the same results

By default, git for windowsclones all projects in your C:\users\<username> folder. MSYS2 would do it in the directory you ran the command from. Make sure you clone the repo with the --recursive option as well.

Sakimotor avatar Mar 03 '25 16:03 Sakimotor

If you guys struggle with Visual Studio, you might want to give MSYS2 a try, I wrote the steps in my fork of the project, hopefully it will be good enough

Thanks! I got Msys2 up and running, installed the necssary packages, and now im stuck at the cloned repo part. I cloned through msys2 and it says it's done but I can't find the repo. It's not in my C drive. When I did this with Visual Studio, I found it in C/Users/Me/XenonRecomp but it doesn't seem to know where it even is. Accessing my C drive by going into the /c folder of msys2 doesn't seem to work and I can't put the command cmake -DCMAKE_BUILD_TYPE=Debug. Everytime I get so close, There's always something! Thank you so much for your time if you can somehow help with this! It really means the world

Where did you clone the repo from, your MSYS2 ?

I try cloning it with Git and it would make the folder but couldn't find where the folder was, so I tried to clone it with MSYS2 and got the same results

By default, git for windowsclones all projects in your C:\users\<username> folder. MSYS2 would do it in the directory you ran the command from. Make sure you clone the repo with the --recursive option as well.

--Recursive worked! It gave me all the missing files. Now when I put in cmake -DCMAKE_BUILD_TYPE=Debug in git, it says that something was build but I can't seem to find the build.ninja file. Putting in the ninja command doesn't work in either git bash or msys2

KinglyNerd33 avatar Mar 03 '25 17:03 KinglyNerd33

I can run the cmake -DCMAKE_BUILD_TYPE=Debug command through MSYS, but it gives me this wall of errors once i run ninja.

[5/34] Building CXX object XenonUtils/CMakeFiles/XenonUtils.dir/xdbf_wrapper.cpp.obj
FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xdbf_wrapper.cpp.obj
C:\msys64\usr\bin\c++.exe -DNOMINMAX -I"C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/." -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/libmspack/libmspack/mspack" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/tiny-AES-c" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/TinySHA1" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/disasm/." -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xdbf_wrapper.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xdbf_wrapper.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xdbf_wrapper.cpp.obj -c "C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf_wrapper.cpp"
In file included from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf.h:3,
                 from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf_wrapper.h:4,
                 from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf_wrapper.cpp:1:
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/./xbox.h:248:26: error: member ΓÇÿbe<unsigned int> _XXOVERLAPPED::<unnamed union>::<unnamed struct>::ErrorΓÇÖ with constructor not allowed in anonymous aggregate
  248 |             be<uint32_t> Error;
      |                          ^~~~~
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/./xbox.h:249:26: error: member ΓÇÿbe<unsigned int> _XXOVERLAPPED::<unnamed union>::<unnamed struct>::LengthΓÇÖ with constructor not allowed in anonymous aggregate
  249 |             be<uint32_t> Length;
      |                          ^~~~~~
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf.h:133:22: error: member ΓÇÿbe<short unsigned int> XDBFTitleID::<unnamed struct>::u16ΓÇÖ with constructor not allowed in anonymous aggregate
  133 |         be<uint16_t> u16;
      |                      ^~~
[8/34] Building CXX object XenonUtils/CMakeFiles/XenonUtils.dir/image.cpp.obj
FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/image.cpp.obj
C:\msys64\usr\bin\c++.exe -DNOMINMAX -I"C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/." -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/libmspack/libmspack/mspack" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/tiny-AES-c" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/TinySHA1" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/disasm/." -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/image.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\image.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/image.cpp.obj -c "C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/image.cpp"
In file included from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.h:3,
                 from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/image.cpp:3:
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:248:26: error: member ΓÇÿbe<unsigned int> _XXOVERLAPPED::<unnamed union>::<unnamed struct>::ErrorΓÇÖ with constructor not allowed in anonymous aggregate
  248 |             be<uint32_t> Error;
      |                          ^~~~~
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:249:26: error: member ΓÇÿbe<unsigned int> _XXOVERLAPPED::<unnamed union>::<unnamed struct>::LengthΓÇÖ with constructor not allowed in anonymous aggregate
  249 |             be<uint32_t> Length;
      |                          ^~~~~~
[12/34] Building CXX object XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj
FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj
C:\msys64\usr\bin\c++.exe -DNOMINMAX -I"C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/." -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/libmspack/libmspack/mspack" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/tiny-AES-c" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/TinySHA1" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/disasm/." -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xex_patcher.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -c "C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex_patcher.cpp"
In file included from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.h:3,
                 from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex_patcher.cpp:13:
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:248:26: error: member ΓÇÿbe<unsigned int> _XXOVERLAPPED::<unnamed union>::<unnamed struct>::ErrorΓÇÖ with constructor not allowed in anonymous aggregate
  248 |             be<uint32_t> Error;
      |                          ^~~~~
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:249:26: error: member ΓÇÿbe<unsigned int> _XXOVERLAPPED::<unnamed union>::<unnamed struct>::LengthΓÇÖ with constructor not allowed in anonymous aggregate
  249 |             be<uint32_t> Length;
      |                          ^~~~~~
[13/34] Building CXX object XenonUtils/CMakeFiles/XenonUtils.dir/xex.cpp.obj
FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xex.cpp.obj
C:\msys64\usr\bin\c++.exe -DNOMINMAX -I"C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/." -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/libmspack/libmspack/mspack" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/tiny-AES-c" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/TinySHA1" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/disasm/." -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xex.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xex.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xex.cpp.obj -c "C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.cpp"
In file included from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.h:3,
                 from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.cpp:1:
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:248:26: error: member ΓÇÿbe<unsigned int> _XXOVERLAPPED::<unnamed union>::<unnamed struct>::ErrorΓÇÖ with constructor not allowed in anonymous aggregate
  248 |             be<uint32_t> Error;
      |                          ^~~~~
C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:249:26: error: member ΓÇÿbe<unsigned int> _XXOVERLAPPED::<unnamed union>::<unnamed struct>::LengthΓÇÖ with constructor not allowed in anonymous aggregate
  249 |             be<uint32_t> Length;
      |                          ^~~~~~
[14/34] Building CXX object thirdparty/fmt/CMakeFiles/fmt.dir/src/format.cc.obj
ninja: build stopped: subcommand failed.

Trying to clone libc+.dll returns cp: cannot stat '/clang64/bin/libc++.dll/': Not a directory.

k3kyoin avatar Mar 03 '25 19:03 k3kyoin

I can run the cmake -DCMAKE_BUILD_TYPE=Debug command through MSYS, but it gives me this wall of errors once i run ninja.

[5/34] Building CXX object XenonUtils/CMakeFiles/XenonUtils.dir/xdbf_wrapper.cpp.obj FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xdbf_wrapper.cpp.obj C:\msys64\usr\bin\c++.exe -DNOMINMAX -I"C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/." -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/libmspack/libmspack/mspack" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/tiny-AES-c" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/TinySHA1" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/disasm/." -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xdbf_wrapper.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xdbf_wrapper.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xdbf_wrapper.cpp.obj -c "C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf_wrapper.cpp" In file included from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf.h:3, from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf_wrapper.h:4, from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf_wrapper.cpp:1: C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/./xbox.h:248:26: error: member ΓÇÿbe _XXOVERLAPPED::::::ErrorΓÇÖ with constructor not allowed in anonymous aggregate 248 | be<uint32_t> Error; | ^~~~~ C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/./xbox.h:249:26: error: member ΓÇÿbe _XXOVERLAPPED::::::LengthΓÇÖ with constructor not allowed in anonymous aggregate 249 | be<uint32_t> Length; | ^~~~~~ C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xdbf.h:133:22: error: member ΓÇÿbe XDBFTitleID::::u16ΓÇÖ with constructor not allowed in anonymous aggregate 133 | be<uint16_t> u16; | ^~~ [8/34] Building CXX object XenonUtils/CMakeFiles/XenonUtils.dir/image.cpp.obj FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/image.cpp.obj C:\msys64\usr\bin\c++.exe -DNOMINMAX -I"C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/." -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/libmspack/libmspack/mspack" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/tiny-AES-c" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/TinySHA1" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/disasm/." -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/image.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\image.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/image.cpp.obj -c "C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/image.cpp" In file included from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.h:3, from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/image.cpp:3: C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:248:26: error: member ΓÇÿbe _XXOVERLAPPED::::::ErrorΓÇÖ with constructor not allowed in anonymous aggregate 248 | be<uint32_t> Error; | ^~~~~ C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:249:26: error: member ΓÇÿbe _XXOVERLAPPED::::::LengthΓÇÖ with constructor not allowed in anonymous aggregate 249 | be<uint32_t> Length; | ^~~~~~ [12/34] Building CXX object XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj C:\msys64\usr\bin\c++.exe -DNOMINMAX -I"C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/." -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/libmspack/libmspack/mspack" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/tiny-AES-c" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/TinySHA1" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/disasm/." -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xex_patcher.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -c "C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex_patcher.cpp" In file included from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.h:3, from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex_patcher.cpp:13: C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:248:26: error: member ΓÇÿbe _XXOVERLAPPED::::::ErrorΓÇÖ with constructor not allowed in anonymous aggregate 248 | be<uint32_t> Error; | ^~~~~ C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:249:26: error: member ΓÇÿbe _XXOVERLAPPED::::::LengthΓÇÖ with constructor not allowed in anonymous aggregate 249 | be<uint32_t> Length; | ^~~~~~ [13/34] Building CXX object XenonUtils/CMakeFiles/XenonUtils.dir/xex.cpp.obj FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xex.cpp.obj C:\msys64\usr\bin\c++.exe -DNOMINMAX -I"C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/." -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/libmspack/libmspack/mspack" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/tiny-AES-c" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/TinySHA1" -I"C:/Users/Lenovo ThinkPad/XenonRecomp/thirdparty/disasm/." -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xex.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xex.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xex.cpp.obj -c "C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.cpp" In file included from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.h:3, from C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xex.cpp:1: C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:248:26: error: member ΓÇÿbe _XXOVERLAPPED::::::ErrorΓÇÖ with constructor not allowed in anonymous aggregate 248 | be<uint32_t> Error; | ^~~~~ C:/Users/Lenovo ThinkPad/XenonRecomp/XenonUtils/xbox.h:249:26: error: member ΓÇÿbe _XXOVERLAPPED::::::LengthΓÇÖ with constructor not allowed in anonymous aggregate 249 | be<uint32_t> Length; | ^~~~~~ [14/34] Building CXX object thirdparty/fmt/CMakeFiles/fmt.dir/src/format.cc.obj ninja: build stopped: subcommand failed. Trying to clone libc+.dll returns cp: cannot stat '/clang64/bin/libc++.dll/': Not a directory.

The lack of libc++.dll in the clang64 folder indicates to me that you're not using the CLANG64 environment, make sure you launch that one

Image

Sakimotor avatar Mar 03 '25 21:03 Sakimotor

I'm using MSYS2 CLANG64. I tried redoing the entire process entirely from the MSYS2 terminal, but still no luck. It looks like there's an error while running ninja.

k3kyoin avatar Mar 03 '25 21:03 k3kyoin

I'm using MSYS2 CLANG64. I tried redoing the entire process entirely from the MSYS2 terminal, but still no luck. It looks like there's an error while running ninja.

Hmmmmm, that's curious. libc++ comes with the mingw-w64-clang-x86_64-libc++ package if you don't already have it, but even without that your output seems to indicate that the compilation is made with g++ so you should set the CC and CXX compiler options to Clang

Sakimotor avatar Mar 03 '25 21:03 Sakimotor

Was getting errors like "missing libc++.dll, libgcc_s_seh-1.dll and libstdc++-6.dll" so I found the files and copied them into the XenonRecomp folder. The errors have stopped but now the .exe keeps closing after I opened it. Was I suppose to put these files somewhere else?

KinglyNerd33 avatar Mar 03 '25 22:03 KinglyNerd33

I suffered through the trial and error of trying to set this up and finally figured it out earlier today thanks to help from @Sakimotor!

I also tried this on Linux a few times but it so far has not worked for me even with @DennisStanistan's instructions from #20.

Summarized instructions for Windows from #21

Install MSYS2 and use the "MSYS2 CLANG64" environment

# Update package index and upgrade system
pacman -Syu
# Sync required packages
pacman -S mingw-w64-x86_64-clang mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-libc++ mingw-w64-x86_64-ninja
# Navigate to XenonRecomp
cd /c/Users/Administrator/git/XenonRecomp
# Generate build files
cmake .
# Build
cmake --build .

halotroop2288 avatar Mar 04 '25 00:03 halotroop2288

Was getting errors like "missing libc++.dll, libgcc_s_seh-1.dll and libstdc++-6.dll" so I found the files and copied them into the XenonRecomp folder. The errors have stopped but now the .exe keeps closing after I opened it. Was I suppose to put these files somewhere else?

The executables are to be used through the terminal

Sakimotor avatar Mar 04 '25 01:03 Sakimotor

Was getting errors like "missing libc++.dll, libgcc_s_seh-1.dll and libstdc++-6.dll" so I found the files and copied them into the XenonRecomp folder. The errors have stopped but now the .exe keeps closing after I opened it. Was I suppose to put these files somewhere else?

The executables are to be used through the terminal

I got this error

Image

after opening the exe

SmokeyDawg58 avatar Mar 04 '25 03:03 SmokeyDawg58

@halotroop2288 I keep getting this error whenever I run cmake ..

Image

I followed your instructions as you mentioned previously.

I suffered through the trial and error of trying to set this up and finally figured it out earlier today thanks to help from @Sakimotor!

I also tried this on Linux a few times but it so far has not worked for me even with @DennisStanistan's instructions from #20.

Summarized instructions for Windows from #21

Install MSYS2 and use the "MSYS2 CLANG64" environment

Update package index and upgrade system

pacman -Syu

Sync required packages

pacman -S mingw-w64-x86_64-clang mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-libc++ mingw-w64-x86_64-ninja

Navigate to XenonRecomp

cd /c/Users/Administrator/git/XenonRecomp

Generate build files

cmake .

Build

cmake --build .

sunnad99 avatar Mar 04 '25 11:03 sunnad99

here is my compiled version for windows https://github.com/bufferpoint/XenonRecomp/releases

kernbyte avatar Mar 04 '25 13:03 kernbyte

I keep getting this error whenever I run cmake .. Image

You are missing the compilers. Run this again.

Sync required packages

pacman -S mingw-w64-x86_64-clang mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-libc++ mingw-w64-x86_64-ninja

halotroop2288 avatar Mar 04 '25 16:03 halotroop2288

I also made the big mistake of not recursively cloning. After doing that AND installing the compilers, it worked. Thanks!

sunnad99 avatar Mar 05 '25 10:03 sunnad99

I got pretty far along in the process and then got this error when building:

FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj C:\msys64\clang64\bin\c++.exe -DNOMINMAX -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/. -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/libmspack/libmspack/mspack -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/tiny-AES-c -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/TinySHA1 -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/disasm/. -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xex_patcher.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -c C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: error: static declaration of 'lzxDecompress' follows non-static declaration 144 | static int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength) | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: previous declaration is here 19 | extern int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:209:26: error: call to 'lzxDecompress' is ambiguous 209 | int result = lzxDecompress(curPatch->patchData, curPatch->compressedLength, &dstData[curPatch->newAddress], curPatch->uncompressedLength, windowSize, &dstData[curPatch->oldAddress], curPatch->uncompressedLength); | ^~~~~~~~~~~~~ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: candidate function 19 | extern int lzxDecompress(const void* lzxData, size_t lzxLength, void* dst, size_t dstLength, uint32_t windowSize, void* windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: note: candidate function 144 | static int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength) | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:457:22: error: call to 'lzxDecompress' is ambiguous 457 | resultCode = lzxDecompress(compressBuffer.get(), d - compressBuffer.get(), buffer, uncompressedSize, ((const Xex2FileNormalCompressionInfo)(fileFormatInfo + 1))->windowSize, nullptr, 0); | ^~~~~~~~~~~~~ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: candidate function 19 | extern int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void* windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: note: candidate function 144 | static int lzxDecompress(const void *lzxData, size_t lzxLength, void *dst, size_t dstLength, uint32_t windowSize, void *windowData, size_t windowDataLength) | ^ 3 errors generated. [26/34] Building CXX object XenonRecomp/CMakeFiles/XenonRecomp.dir/cmake_pch.hxx.pch ninja: build stopped: subcommand failed.

OliviaBorghi avatar Apr 18 '25 07:04 OliviaBorghi

@OliviaBorghi same

TheNightmanCodeth avatar Apr 18 '25 16:04 TheNightmanCodeth

I got pretty far along in the process and then got this error when building:

FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj C:\msys64\clang64\bin\c++.exe -DNOMINMAX -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/. -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/libmspack/libmspack/mspack -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/tiny-AES-c -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/TinySHA1 -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/disasm/. -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xex_patcher.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -c C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: error: static declaration of 'lzxDecompress' follows non-static declaration 144 | static int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength) | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: previous declaration is here 19 | extern int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:209:26: error: call to 'lzxDecompress' is ambiguous 209 | int result = lzxDecompress(curPatch->patchData, curPatch->compressedLength, &dstData[curPatch->newAddress], curPatch->uncompressedLength, windowSize, &dstData[curPatch->oldAddress], curPatch->uncompressedLength); | ^~~~~~~~~~~~~ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: candidate function 19 | extern int lzxDecompress(const void* lzxData, size_t lzxLength, void* dst, size_t dstLength, uint32_t windowSize, void* windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: note: candidate function 144 | static int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength) | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:457:22: error: call to 'lzxDecompress' is ambiguous 457 | resultCode = lzxDecompress(compressBuffer.get(), d - compressBuffer.get(), buffer, uncompressedSize, ((const Xex2FileNormalCompressionInfo)(fileFormatInfo + 1))->windowSize, nullptr, 0); | ^~~~~~~~~~~~~ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: candidate function 19 | extern int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void* windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: note: candidate function 144 | static int lzxDecompress(const void *lzxData, size_t lzxLength, void *dst, size_t dstLength, uint32_t windowSize, void *windowData, size_t windowDataLength) | ^ 3 errors generated. [26/34] Building CXX object XenonRecomp/CMakeFiles/XenonRecomp.dir/cmake_pch.hxx.pch ninja: build stopped: subcommand failed.

Okay it looks like you can just change XenonUtils/xex_patcher.cpp:144 to extern int instead of static int or make the header static instead of extern.

I don't know the implications of this and I'm not even sure if it gets the build going as I'm doing this on arm64. I'm going to try it on my other machine later just thought I'd drop this here in case I forget

TheNightmanCodeth avatar Apr 18 '25 17:04 TheNightmanCodeth

I got pretty far along in the process and then got this error when building:

FAILED: XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj C:\msys64\clang64\bin\c++.exe -DNOMINMAX -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/. -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/libmspack/libmspack/mspack -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/tiny-AES-c -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/TinySHA1 -IC:/Users/User/Desktop/blue-dragon/XenonRecomp/thirdparty/disasm/. -g -std=gnu++17 -MD -MT XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -MF XenonUtils\CMakeFiles\XenonUtils.dir\xex_patcher.cpp.obj.d -o XenonUtils/CMakeFiles/XenonUtils.dir/xex_patcher.cpp.obj -c C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: error: static declaration of 'lzxDecompress' follows non-static declaration 144 | static int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength) | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: previous declaration is here 19 | extern int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:209:26: error: call to 'lzxDecompress' is ambiguous 209 | int result = lzxDecompress(curPatch->patchData, curPatch->compressedLength, &dstData[curPatch->newAddress], curPatch->uncompressedLength, windowSize, &dstData[curPatch->oldAddress], curPatch->uncompressedLength); | ^~~~~~~~~~~~~ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: candidate function 19 | extern int lzxDecompress(const void* lzxData, size_t lzxLength, void* dst, size_t dstLength, uint32_t windowSize, void* windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: note: candidate function 144 | static int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void windowData, size_t windowDataLength) | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:457:22: error: call to 'lzxDecompress' is ambiguous 457 | resultCode = lzxDecompress(compressBuffer.get(), d - compressBuffer.get(), buffer, uncompressedSize, ((const Xex2FileNormalCompressionInfo)(fileFormatInfo + 1))->windowSize, nullptr, 0); | ^~~~~~~~~~~~~ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.h:19:12: note: candidate function 19 | extern int lzxDecompress(const void lzxData, size_t lzxLength, void dst, size_t dstLength, uint32_t windowSize, void* windowData, size_t windowDataLength); | ^ C:/Users/User/Desktop/blue-dragon/XenonRecomp/XenonUtils/xex_patcher.cpp:144:12: note: candidate function 144 | static int lzxDecompress(const void *lzxData, size_t lzxLength, void *dst, size_t dstLength, uint32_t windowSize, void *windowData, size_t windowDataLength) | ^ 3 errors generated. [26/34] Building CXX object XenonRecomp/CMakeFiles/XenonRecomp.dir/cmake_pch.hxx.pch ninja: build stopped: subcommand failed.

I'm getting the same error too and haven't figured out a solution yet.

Altureus avatar May 16 '25 21:05 Altureus