- 
                Notifications
    
You must be signed in to change notification settings  - Fork 30
 
Common Issues
This page will contain notes regarding common issues experienced while building or working on Quiver. Before going into this page, you should read the README in the root of the Engine repo. It might have some useful info!
If you have any additional questions you can join our Discord or DM me on Discord (JJl77#6673)
You need to link against vstdlib in the project you're compiling. tier1 uses some stuff from vstdlib iirc, thus any project in Source depends on vstdlib too.
You need to link against tier0
As stated in the readme on that repo, it's not quite finished. I've created the runtime to ease building across different Linux distros, so it's optional. Right now the Linux port is in progress, so the runtime doesn't have much of a use, since nobody can build the engine for linux anyways.
Delete your CMake cache and pass these parameters to CMake: -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32. It should automatically find and check the libraries you're linking against
Delete your CMake cache and regenerate. You can do this by deleting your build/ directory.
Install libgl1 on your system and it should work. Packages are a bit tricky, so you can google which package provides the opengl lib, etc.
Yes, you can use Mingw-w64 to cross compile for Windows. See the Wiki page for details on this.
When building utils, some things fail because they're trying to access fields in the intrinsic type __m128.
This is actually due to the implementation of x86 intrinsics being different on Windows than it is on Linux. Some utils have not been ported yet.
Currently the engine contains a ton of non-conforming C++ code (thanks MSVC!), so you need to build with -fpermissive. Oddly, the -fpermissive on clang is a lot less permissive than the -fpermissive flag on GCC, so right now you can only build with GCC.
Make sure you've installed MFC and ATL (read the readme for more info on this). If the errors persist, contact one of us and maybe we can help.
Run git submodule init && git submodule update to get all the required dependencies
The batch script used to build shaders says "Perl is not recognized as an internal or external command..."
Make sure to install Perl before running the script. I personally use strawberry perl (when I'm using Windows that is)
(Mingw) When building the engine with Mingw, it fails with the linker error undefined reference to CreateEventA or something similar
Mingw's headers are a bit different than Windows' headers, so some macros are defined where they would normally not be on Windows. This linker error is due to a sneaky macro replacing CreateEvent in a class definition with CreateEventA. This can happen for similar macros. To fix it, add #undef CreateEvent at the top of your header after the includes block.
Mathlib is statically linked to each project that needs it. Every project that is an executable or DLL must explicitly initialize mathlib using Mathlib_Init.
There are two solutions to this:
- Build the engine in release mode (lots of lag can be attributed to no optimization)
 - Disable vphysics simulation using 
vphysics_pauseconsole command. Right now, vphysics is not well optimized, and will destroy your FPS when anything complex is happening.