diasurgical / devilution

Diablo devolved - magic behind the 1996 computer game
Other
8.77k stars 919 forks source link

Error compiling on Ubuntu 16.04 x64 #24

Closed Vthyarilops closed 6 years ago

Vthyarilops commented 6 years ago

Sorry if this is a dumb question I'm kind of new to compiling software, anyways I have MinGW-W64 set up and it compiles for a while then I receive this error. https://pastebin.com/M0TThZVg

Any help appreciated, and thanks for your awesome work.

ghost commented 6 years ago

Hmmm I am just jumping on this and looking...

/usr/bin/i686-w64-mingw32-ld: cannot find -ldiabloui /usr/bin/i686-w64-mingw32-ld: cannot find -lstorm

these files cannot be found.

Vthyarilops commented 6 years ago

Well I can see that but the binary /usr/bin/i686-w64-mingw32-ld does exist, I have no clue about the -lbiabloui and -lstorm I honestly have no clue why/how/what they are (well I guess source code to generate the dll's?) maybe it calls the relative path and can't find it. again idk I'm not a developer so am not very familiar with gcc/g++/MinGW-W64

Vthyarilops commented 6 years ago

Found the issue DiabloUI.lib and Storm.lib have to be rename to diabloui.lib and storm.lib, also side note diabloui.dll has to be renamed to DiabloUI.dll before you can compile. Another thing that should be mentioned is that STANDARD.snp has to be in the directory for Single Player mode to launch otherwise it will not get passed the menu.

Here is a fixed makefile for Linux that uses the correct case sensitivity https://pastebin.com/ybwykFcA

mewmew commented 6 years ago

Found the issue DiabloUI.lib and Storm.lib have to be rename to diabloui.lib and storm.lib, also side note diabloui.dll has to be renamed to DiabloUI.dll before you can compile.

These issues related to upper and lower casing of files are likely to come up also in the future. Windows is case insensitive, while Linux (and Mac?) are case sensitive.

@galaxyhaxz Would it be worth lowercasing all file names? Or is it better to try to keep closer to the original and pertain the casing.

Vthyarilops commented 6 years ago

One thing I want to point out is that the original disk names the required files like diabloui.dll Storm.dll SMACKW32.dll DIABDAT.MPQ STANDARD.snp So it might be a good idea to just use the default case, anyways game plays great thanks again

ghost commented 6 years ago

Thanks for the info, I'll update the readme accordingly (forgot about the SNP files, though BATTLE.snp isn't needed).

@mewmew Another fail on my end, forgot that POSIX environments are case sensitive. Makefiles will use lowercase from now on. Also added your warning to suppress the strings. https://github.com/galaxyhaxz/devilution/commit/67f8485217ec364f396281e0fd9e0cbe61994aa0

mewmew commented 6 years ago

Good :)

OvermindDL1 commented 6 years ago

forgot that POSIX environments are case sensitive

Not just posix, don't forget that Windows 10 has an optional case sensitive mode now too.