Compiling Minetest on Windows

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan

Compiling Minetest on Windows

by bgsmithjr » Wed Mar 28, 2012 18:50

EDIT: You will also need OpenAL for sound support:
http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx

Code: Select all
Compiling on Windows:
---------------------

- You need:
    * CMake:
        [url]http://www.cmake.org/cmake/resources/software.html[/url]
    * MinGW or Visual Studio
        [url]http://www.mingw.org[/url]/
        [url]http://msdn.microsoft.com/en-us/vstudio/default[/url]
    * Irrlicht SDK 1.7:
        [url]http://irrlicht.sourceforge.net/downloads.html[/url]
    * Zlib headers (zlib125.zip)
        [url]http://www.winimage.com/zLibDll/index.html[/url]
    * Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
        [url]http://www.winimage.com/zLibDll/index.html[/url]
    * Optional: gettext bibrary and tools:
        [url]http://gnuwin32.sourceforge.net/downlinks/gettext.php[/url]
        - This is used for other UI languages. Feel free to leave it out.
HERE * Libvorbis 1.3.3
                DLL=[url]http://www.dll-files.com/dllindex/dll-files.shtml?libvorbis[/url]
                INCLUDE=[url]http://xiph.org/downloads/[/url]
HERE  *Libvorbisfile
                DLL=[url]http://www.dll-files.com/dllindex/dll-files.shtml?libvorbisfile[/url]
                INCLUDE=libvorbis/include
HERE *Libogg
                INCLUDE=[url]http://xiph.org/downloads/[/url]
                DLL= [url]http://www.dlldump.com/download-dll-files_new.php/dllfiles/L/libogg.dll/-/download.html[/url]
    * And, of course, Minetest-c55:
        [url]http://c55.me/minetest/download[/url]
- Steps:
    - Select a directory called DIR hereafter in which you will operate.
    - Make sure you have CMake and a compiler installed.
    - Download all the other stuff to DIR and extract them into there.
      ("extract here", not "extract to packagename/")
      NOTE: zlib125dll.zip needs to be extracted into zlib125dll
    - All those packages contain a nice base directory in them, which
      should end up being the direct subdirectories of DIR.
    - You will end up with a directory structure like this (+=dir, -=file):
    -----------------
+ DIR
                              - oalinst.exe
        - zlib-1.2.5.tar.gz
        - zlib125dll.zip
        - irrlicht-1.7.1.zip
                - libvorbis-1.3.3.zip
                - libogg-1.3.0.zip
        - 110214175330.zip (or whatever, this is the minetest source)
        + zlib-1.2.5
            - zlib.h
            + win32
            ...
        + zlib125dll
            - readme.txt
            + dll32
            ...
        + irrlicht-1.7.1
            + lib
            + include
            ...
HERE  + libvorbis-1.3.3.zip
                       + lib
                       + include
                         ...
HERE + libogg-1.3.0.zip
                       + lib
                       + include
                         ...
        + gettext (optional)
            +bin
            +include
            +lib
        + minetest
            + src
            + doc
            - CMakeLists.txt
            ...
    -----------------
    - Start up the CMake GUI
    - Select "Browse Source..." and select DIR/minetest
    - Now, if using MSVC:
        - Select "Browse Build..." and select DIR/minetest-build
    - Else if using MinGW:
        - Select "Browse Build..." and select DIR/minetest
    - Select "Configure"
    - Select your compiler
    - It will warn about missing stuff, ignore that at this point. (later don't)
    - Make sure the configuration is as follows
      (note that the versions may differ for you):
-------------------------------------------------------------
        BUILD_CLIENT                         [X]
    BUILD_SERVER                       [  ]
    CMAKE_BUILD_TYPE             Release
    CMAKE_INSTALL_PREFIX     DIR/minetest-install
    IRRLICHT_SOURCE_DIR       DIR/irrlicht-1.7.1
    RUN_IN_PLACE                        [X]
    WARN_ALL                                 [  ]
    ZLIB_DLL                                    DIR/zlib125dll/dll32/zlibwapi.dll
    ZLIB_INCLUDE_DIR                 DIR/zlib-1.2.5
    ZLIB_LIBRARIES                       DIR/zlib125dll/dll32/zlibwapi.lib
HERE  LIBVORBIS_INCLUDE_DIR    DIR/libvorbis-1.3.3/include
HERE LIBVORBIS_LIBRARIES           DIR/libvorbis.dll
HERE  LIBVORBISFILE_INCLUDE_DIR    DIR/libvorbis-1.3.3/include
HERE  LIBVORBISFILE_LIBRARIES           DIR/libvorbisfile.dll
HERE  LIBOGG_INCLUDE_DIR          DIR/libogg-1.3.0/include
HERE  LIBOGG_LIBRARIES                DIR/libogg.dll
    GETTEXT_BIN_DIR                  DIR/gettext/bin
    GETTEXT_INCLUDE_DIR       DIR/gettext/include
    GETTEXT_LIBRARIES             DIR/gettext/lib/intl.lib
    GETTEXT_MSGFMT                 DIR/gettext/bin/msgfmt
OPENAL_INCLUDE_DIR=C:\Program Files (x86)\OpenAL\include
OPENAL_LIBRARIES=C:\Program Files (x86)\OpenAL\lib\OpenAL32.lib
- Hit "Configure"
    - Hit "Configure" once again 8)
    - If something is still coloured red, you have a problem.
    - Hit "Generate"
    If using MSVC:
        - Open the generated minetest.sln
        - The project defaults to the "Debug" configuration. Make very sure to
          select "Release", unless you want to debug some stuff (it's slower
          and might not even work at all)
        - Build the ALL_BUILD project
        - Build the INSTALL project
        - You should now have a working game with the executable in
            DIR/minetest-install/bin/minetest.exe
        - Additionally you may create a zip package by building the PACKAGE
          project.
    If using MinGW:
        - Using the command line, browse to the build directory and run 'make'
          (or mingw32-make or whatever it happens to be)
        - You may need to copy some of the downloaded DLLs into bin/, see what
          running the produced executable tells you it doesn't have.
        - You should now have a working game with the executable in
            DIR/minetest/bin/minetest.exe

Windows releases of minetest are built using a bat script like this:
--------------------------------------------------------------------

set sourcedir=%CD%
set installpath="C:\tmp\minetest_install"
set irrlichtpath="C:\tmp\irrlicht-1.7.2"

set builddir=%sourcedir%\bvc10
mkdir %builddir%
pushd %builddir%
cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=1 -DCMAKE_INSTALL_PREFIX=%installpath%
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" INSTALL.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" PACKAGE.vcxproj /p:Configuration=Release
if %errorlevel% neq 0 goto fail
popd
echo Finished.
exit /b 0

:fail
popd
echo Failed.
exit /b 1
Last edited by bgsmithjr on Sat Apr 07, 2012 01:19, edited 1 time in total.
 

User avatar
Jordach
Member
 
Posts: 4463
Joined: Mon Oct 03, 2011 17:58
Location: Blender Scene
GitHub: Jordach
IRC: Jordach
In-game: Jordach

by Jordach » Wed Mar 28, 2012 19:12

thanKs dude!
PM me if you want access to my Solar Plains Discord and or Dev server.
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan
 

Gilli
Member
 
Posts: 20
Joined: Sat Mar 17, 2012 21:15

by Gilli » Wed Mar 28, 2012 21:09

Hello bgsmithjr,

I love you !
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan

by bgsmithjr » Thu Mar 29, 2012 13:46

Also, if using visual studio you'll want to go to the solution explorer, right click the minetest project, goto properties,on the left treeview, expand Linker, then click input, then on the right side, in the field Ignore Specific Default Libraries add

libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib

Also, while using cmake-gui I noticed it is passing /MD, but on visual studio it passes /MT, you can change that by opening the properties of the minetest project expaning C++ on the right, then selecting Code Generation, changing the runtime library field to Multi-Threaded DLL(/MD)

http://msdn.microsoft.com/en-us/library/aa267384(v=VS.60).aspx
Last edited by bgsmithjr on Thu Mar 29, 2012 13:55, edited 1 time in total.
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04

by Utilisatrice » Sat Mar 31, 2012 13:05

Hi Bgsmithjr,

Can you help me please ?

C:\Users \****\Desktop\Minetest\libvorbisfile.dll : fatal error LNK1107: invalid or corrupt file: can not read 0x2B8

I have just this error.
Last edited by Utilisatrice on Sat Mar 31, 2012 13:06, edited 1 time in total.
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan

by bgsmithjr » Sat Mar 31, 2012 13:15

I don't use the dll, I just the .lib file. You can compile it yourself using cmake gui.
Here is what I use.
http://www.filedropper.com/libvorbisfilestatic
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04

by Utilisatrice » Sat Mar 31, 2012 13:50

Thank, but now :

C:\Users\****\Desktop\Minetest\libvorbis.dll : fatal error LNK1107: invalid or corrupt file : can not read 0x240.

:'(.

EDIT : When I Use libvorbis.lib there is :

C:\Users\****\Desktop\Minetest\libogg.dll : fatal error LNK1107: invalid or corrupt file : can not read 0x278
Last edited by Utilisatrice on Sat Mar 31, 2012 15:11, edited 1 time in total.
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan

by bgsmithjr » Sat Mar 31, 2012 15:22

here are replacements for libogg, libvorbis, and libvorbisfile dlls
http://www.filedropper.com/minetest
Last edited by bgsmithjr on Sat Mar 31, 2012 15:22, edited 1 time in total.
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04

by Utilisatrice » Sat Mar 31, 2012 15:32

Thank, but I often change and I compile the sources.

You could give me the libs that you use please ?
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan

by bgsmithjr » Sat Mar 31, 2012 15:34

I just did in my last post, those are just the libs, sorry for naming minetest.zip
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04

by Utilisatrice » Sat Mar 31, 2012 16:00

Code: Select all
>LINK : warning LNK4075: ' /INCREMENTAL' ignoré à cause de la spécification '/LTCG'
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __errno déjà défini(e) dans LIBCMT.lib(dosmap.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _malloc déjà défini(e) dans LIBCMT.lib(malloc.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _realloc déjà défini(e) dans LIBCMT.lib(realloc.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _free déjà défini(e) dans LIBCMT.lib(free.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _fseek déjà défini(e) dans LIBCMT.lib(fseek.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _calloc déjà défini(e) dans LIBCMT.lib(calloc.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _ftell déjà défini(e) dans LIBCMT.lib(ftell.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _fclose déjà défini(e) dans LIBCMT.lib(fclose.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _fread déjà défini(e) dans LIBCMT.lib(fread.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _fopen déjà défini(e) dans LIBCMT.lib(fopen.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _toupper déjà défini(e) dans LIBCMT.lib(toupper.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _ceil déjà défini(e) dans LIBCMT.lib(_ceil_pentium4_.obj)
2>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _exit déjà défini(e) dans LIBCMT.lib(crt0dat.obj)
2>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) déjà défini(e) dans LIBCMT.lib(typinfo.obj)
2>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) déjà défini(e) dans LIBCMT.lib(typinfo.obj)
2>     Création de la bibliothèque C:/Users/****/Desktop/Minetest/celeron55-minetest-96ee73f/bin/Release/minetest.lib et de l'objet C:/Users/****/Desktop/Minetest/celeron55-minetest-96ee73f/bin/Release/minetest.exp
2>LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'MSVCRT' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
2>C:\Users\****\Desktop\Minetest\celeron55-minetest-96ee73f\bin\Release\minetest.exe : fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés


:'(, I don't understand.
 

User avatar
Jordach
Member
 
Posts: 4463
Joined: Mon Oct 03, 2011 17:58
Location: Blender Scene
GitHub: Jordach
IRC: Jordach
In-game: Jordach

by Jordach » Sat Mar 31, 2012 16:07

From what google gives me, it seems to be MSVCRT.dll.

Update by searching "vcredist.exe" on Microsoft's website.
PM me if you want access to my Solar Plains Discord and or Dev server.
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan

by bgsmithjr » Sat Mar 31, 2012 16:08

Oh sorry, you have to go the solution explorer on the left hand side, select the project 'minetest', then expand Linker, then choose input, then on the right hand side there should be something that says 'Ignore specific default libraries' in that box put.
libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04

by Utilisatrice » Sat Mar 31, 2012 16:12

Hi Jordach,

I download "Vcredist.exe" and after installation, it had no effect, still the same error.
 

User avatar
Jordach
Member
 
Posts: 4463
Joined: Mon Oct 03, 2011 17:58
Location: Blender Scene
GitHub: Jordach
IRC: Jordach
In-game: Jordach

by Jordach » Sat Mar 31, 2012 16:31

Strange, it worked for me without following instructions....
PM me if you want access to my Solar Plains Discord and or Dev server.
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04

by Utilisatrice » Sat Mar 31, 2012 16:37

Thank but now :

Création de la bibliothèque C:/Users/****/Desktop/Minetest/celeron55-minetest-96ee73f/bin/Release/minetest.lib et de l'objet C:/Users/****/Desktop/Minetest/celeron55-minetest-96ee73f/bin/Release/minetest.exp
2>lua.lib(lmathlib.obj) : error LNK2001: unresolved external symbol __HUGE
2>C:\Users\****\Desktop\Minetest\celeron55-minetest-96ee73f\bin\Release\minetest.exe : fatal error LNK1120: 1 unresolved externals

xD.
Last edited by Utilisatrice on Sat Mar 31, 2012 16:38, edited 1 time in total.
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan

by bgsmithjr » Sat Mar 31, 2012 17:07

select the main project select clean, then rebuild and if that doesnt work change solution explorer->c/c++ -->code generation, on the right side runtime library field->value='/MT' multi-threaded, to '/MD Mult-threaded DLL'
Last edited by bgsmithjr on Sat Mar 31, 2012 17:08, edited 1 time in total.
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04
 

User avatar
bgsmithjr
Member
 
Posts: 436
Joined: Thu Mar 08, 2012 23:21
Location: USA,Michigan

by bgsmithjr » Sat Mar 31, 2012 18:35

I will need more information, if you start from the beginning with the unmodified source and tell me what you do in steps, I could help but I have too little of information to help you any more, now.
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04

by Utilisatrice » Sat Mar 31, 2012 18:44

I do like you said but in the end, I still have the same error :

Code: Select all
------ Début de la génération : Projet : ZERO_CHECK, Configuration : Release Win32 ------
2>------ Début de la génération : Projet : minetest, Configuration : Release Win32 ------
2>LINK : warning LNK4075: ' /INCREMENTAL' ignoré à cause de la spécification '/LTCG'
2>     Création de la bibliothèque C:/Users/****/Desktop/Minetest/celeron55-minetest-7bfa2d4/bin/Release/minetest.lib et de l'objet C:/Users/****/Desktop/Minetest/celeron55-minetest-7bfa2d4/bin/Release/minetest.exp
2>lua.lib(lmathlib.obj) : error LNK2001: symbole externe non résolu __HUGE
2>C:\Users\****\Desktop\Minetest\celeron55-minetest-7bfa2d4\bin\Release\minetest.exe : fatal error LNK1120: 1 externes non résolus
3>------ Début de la génération : Projet : ALL_BUILD, Configuration : Release Win32 ------
3>  Build all projects
========== Génération : 2 a réussi, 1 a échoué, 3 mis à jour, 0 a été ignoré ==========
 

User avatar
Calinou
Moderator
 
Posts: 3143
Joined: Mon Aug 01, 2011 14:26
Location: Troyes, France
GitHub: Calinou
IRC: Calinou
In-game: Calinou

by Calinou » Sat Mar 31, 2012 18:47

Idea: you should make Windows binairies about the latest git and distribute them (update them daily/weekly).
That'd help a lot of people. Thanks. :)
 

Utilisatrice
Member
 
Posts: 103
Joined: Thu Feb 16, 2012 18:04

by Utilisatrice » Sat Mar 31, 2012 18:53

When I delete:

lua_pushnumber (L, HUGE_VAL);

Line 255.

I can compile the game but when I try to enter the game, minetest crash.

EDIT : Calinou, sa servirait à rien, il y a pas mal de personnes qui modifie les sources de minetest pour pouvoir y inclure du contenu. Donc si on peu pas compiler les sources du jeu nous mêmes, ce serait compliquer on va pas déranger bgsmithjr à chaque fois.
Last edited by Utilisatrice on Sat Mar 31, 2012 18:58, edited 1 time in total.
 

User avatar
Jordach
Member
 
Posts: 4463
Joined: Mon Oct 03, 2011 17:58
Location: Blender Scene
GitHub: Jordach
IRC: Jordach
In-game: Jordach

by Jordach » Sat Mar 31, 2012 18:58

Calinou wrote:Idea: you should make Windows binairies about the latest git and distribute them (update them daily/weekly).
That'd help a lot of people. Thanks. :)

I agree. I can't use Linux since Acer don't provide me with drivers to run the bloddy damn thing, I am currently stuck with the version provided by bgsmithjr, and the second problem is, I can try to compile, but get lost at the MiniGW (OR MSVS STAGE.) I hope you could become the newest Windows package maker, and you do seem pretty nice I must admit.
PM me if you want access to my Solar Plains Discord and or Dev server.
 

Next

Return to General Discussion



Who is online

Users browsing this forum: No registered users and 1 guest