Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue building on Windows. #41

Open
SatoTsukasaCode opened this issue Jan 1, 2023 · 12 comments
Open

Issue building on Windows. #41

SatoTsukasaCode opened this issue Jan 1, 2023 · 12 comments

Comments

@SatoTsukasaCode
Copy link

SatoTsukasaCode commented Jan 1, 2023

I tried to install on windows and got this message.

C:\Users\Chip\Desktop\ded>.\build_msvc.bat
'cl.exe' is not recognized as an internal or external command,
operable program or batch file.```
@Eshanatnight
Copy link

The Visual Studio Compiler is only available on the Developer Powershell or Developer Command Prompt. You can run the bat file on the Developer Powershell or Developer Command Prompt and it will recognize cl.exe.

Side Note I am not exactly sure if you can build ded natively on Windows. Last I heard there was an issue with the Dependency Libraries. So I would kinda suggest that you use wsl/wslg if you wast to build/test it out

@SatoTsukasaCode
Copy link
Author

i tried but before building on WSL but is didn't work.

chip@DESKTOP-CSK36ER:~/ded$ ./build.sh
+ CC=cc
+ PKGS=sdl2 glew freetype2
+ CFLAGS=-Wall -Wextra -std=c11 -pedantic -ggdb
+ LIBS=-lm
+ SRC=src/main.c src/la.c src/editor.c src/sdl_extra.c src/file.c src/gl_extra.c src/free_glyph.c src/cursor_renderer.c src/uniforms.c
+ uname
+ [ Linux = Darwin ]
+ pkg-config --cflags sdl2 glew freetype2
./build.sh: 1: pkg-config: not found
+ pkg-config --libs sdl2 glew freetype2
./build.sh: 1: pkg-config: not found
+ cc -Wall -Wextra -std=c11 -pedantic -ggdb -o ded src/main.c src/la.c src/editor.c src/sdl_extra.c src/file.c src/gl_extra.c src/free_glyph.c src/cursor_renderer.c src/uniforms.c -lm
./build.sh: 15: cc: not found```

@IRooc
Copy link

IRooc commented Jan 4, 2023

Hi I got it building but not yet running, I didnt have freetype yet so I added an extra dependencies:
Add this to the setup-dependencies.bat at the end if you don't have freetype

git clone https://github.com/ubawurinna/freetype-windows-binaries.git dependencies/freetype2

and my build_msvc.bat is this (next to freetype I added some new build files and disabled extra warnings)

@echo off
rem launch this from msvc-enabled console

set CFLAGS=/W4 /WX /std:c11 /wd4996 /wd5105 /wd4459 /wd4267 /wd4244 /FC /TC /Zi /nologo
set INCLUDES=/I dependencies\SDL2\include /I dependencies\GLFW\include /I dependencies\GLEW\include /I dependencies\freetype2\include
set LIBS=dependencies\SDL2\lib\x64\SDL2.lib ^
         dependencies\SDL2\lib\x64\SDL2main.lib ^
         dependencies\GLFW\lib\glfw3.lib ^
         dependencies\GLEW\lib\glew32s.lib ^
         "dependencies\freetype2\release dll\win64\freetype.lib" ^
         opengl32.lib User32.lib Gdi32.lib Shell32.lib

cl.exe %CFLAGS% %INCLUDES% /Feded src\main.c src\la.c src\editor.c src\sdl_extra.c src\file.c src\gl_extra.c src\free_glyph.c src\simple_renderer.c src/uniforms.c /link %LIBS% -SUBSYSTEM:console

I also copied the freetype.dll and SDL2.dll to the project root folder to run ded.exe

But now when I run there is some garbage after the second shaderload which I cannot yet explain. But babysteps Hope this helps for you

@IRooc
Copy link

IRooc commented Jan 4, 2023

For me this PR is working on windows #42

@Meteoroetem
Copy link

Meteoroetem commented Jan 4, 2023

Hi, I also tried to build on windows, I added the freetype library and mentioned it in the build_msvc.bat like you suggested. I still got some errors. Does anyone know how to fix it?

This is the message I got:

main.c
C:\Users\rotem\Desktop\Programming\not mine\ded-master\src\main.c(258): error C2440: 'function': cannot convert from 'void (__cdecl *)(GLenum,GLenum,GLuint,GLenum,GLsizei,const GLchar *,const void *)' to 'GLDEBUGPROC'
C:\Users\rotem\Desktop\Programming\not mine\ded-master\src\main.c(258): warning C4024: '__glewDebugMessageCallback': different types for formal and actual parameter 1
la.c
editor.c
sdl_extra.c
C:\Users\rotem\Desktop\Programming\not mine\ded-master\src\sdl_extra.c(6): error C2220: the following warning is treated as an error
C:\Users\rotem\Desktop\Programming\not mine\ded-master\src\sdl_extra.c(6): warning C4013: 'fprintf' undefined; assuming extern returning int
C:\Users\rotem\Desktop\Programming\not mine\ded-master\src\sdl_extra.c(6): error C2065: 'stderr': undeclared identifier
C:\Users\rotem\Desktop\Programming\not mine\ded-master\src\sdl_extra.c(14): error C2065: 'stderr': undeclared identifier
file.c
gl_extra.c
free_glyph.c
simple_renderer.c
uniforms.c
Generating Code...

I think the problem is somehow related to the SDL2 library, Visual Studio hid the folder at first and I got error messages saying the library doesn't exist.

Thanks in advance!

(edit)
I added

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

to the sdl_extra.h file and now I only get the conversion error.

@IRooc
Copy link

IRooc commented Jan 5, 2023

the sdl_extra.c in the PR has an extra include line of #include <stdio.h> to fix that part
for the first error maybe it's a version difference? I ran the setup_dependencies.bat to get the versions the code expect.

@BillKek
Copy link
Contributor

BillKek commented Jan 6, 2023

I don't recommend it, but you can use msys2 and mingw64 for build this app into native windows exe.
Run mingw64.exe after msys2 installation.
Add packaged into it: pacman -S git base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-glew mingw-w64-x86_64-mesa mingw-w64-x86_64-SDL2 mingw-w64-x86_64-pkgconf mingw-w64-x86_64-freetype
Change dir by cd "path_copypasted_from_explorer_without_final_slash"
Run script ./build_msys2_mingw64.sh from my https://github.com/BillKek/ded_old_msys2/blob/20230112/build_msys2_mingw64.sh (new) The resulting life.exe is 6 MB in size;
or modify and run original ./build.sh.

@IRooc
Copy link

IRooc commented Jan 13, 2023

I'm keeping the pr #42 up to date with tsodings latest code, let me know if there are any other issue I might overlook.

@jayhawker6
Copy link
Contributor

got it working on windows (sort of cheating tho) using WSL. If you have issues compiling, try:

sudo apt install gcc
sudo apt install libfreetype-dev libfreetype6 libfreetype6-dev
sudo apt install libglew-dev

after that try ./build.sh and then if all goes well and you have the libraries and packages installed then you can simply ./ded
(for Debian/ubuntu)

@yahalloe
Copy link

yahalloe commented Nov 27, 2023

I tried installing the libraries libfreetype and libglew in WSL, but new unknown library i guess?

src/main.c:7:10: fatal error: SDL2/SDL.h: No such file or directory
    7 | #include <SDL2/SDL.h>
      |          ^~~~~~~~~~~~
compilation terminated.
In file included from src/./editor.h:6,
                 from src/editor.c:6:
src/./free_glyph.h:11:10: fatal error: SDL2/SDL_opengl.h: No such file or directory
   11 | #include <SDL2/SDL_opengl.h>
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from src/file_browser.h:5,
                 from src/file_browser.c:2:
src/free_glyph.h:11:10: fatal error: SDL2/SDL_opengl.h: No such file or directory
   11 | #include <SDL2/SDL_opengl.h>
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from src/free_glyph.c:3:
src/./free_glyph.h:11:10: fatal error: SDL2/SDL_opengl.h: No such file or directory
   11 | #include <SDL2/SDL_opengl.h>
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from src/simple_renderer.c:7:
src/./simple_renderer.h:10:10: fatal error: SDL2/SDL_opengl.h: No such file or directory
   10 | #include <SDL2/SDL_opengl.h>

@IRooc
Copy link

IRooc commented Nov 30, 2023

You probably need to add the SDL2 lib to the build include path, for windows it was this /I dependencies\SDL2\include but for wsl I don't know should be similar. Or maybe install the SDL2 version that is linked in the readme?

@yahalloe
Copy link

yahalloe commented Dec 3, 2023

I downloaded the SDL2 via sudo apt at their website and the build ran without errors. Though upon running ./ded, 2 error popped up

error: XDG_RUNTIME_DIR not set in the environment.
ERROR: Could not initialize SDL: No available video device

was the SDL2 lib not good?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants