Allegro.cc - Online Community

Allegro.cc Forums » Installation, Setup & Configuration » 4.4.3 Compiling., MSVC, Hellish Number of Errors

This thread is locked; no one can reply to it. rss feed Print
4.4.3 Compiling., MSVC, Hellish Number of Errors
ZoriaRPG
Member #16,714
July 2017
avatar

Edgar Reynaldo said:

Doesn't anybody test these things/

Seems appropriate. Is there some config option that I need to enable to use files meant for compiling on Windows that could be the culprit here, or is this just a pure parade of hell?

#SelectExpand
11>------ Build started: Project: allegro_monolith, Configuration: RelWithDebInfo Win32 ------ 21>Compiling... 31>dsound.cpp 41>directx_shaders.cpp 51>prim_directx.cpp 61>wjoydxnu.cpp 71>Compiling... 81>allegro.c 91>generic_main.c 101>win_dialog.c 111>menu.c 121>textlog.c 131>dialog.c 141>color.c 151>ttf.c 161>.\allegro5\addons\color\color.c(769) : error C2143: syntax error : missing ';' before 'type' 171>.\allegro5\addons\color\color.c(770) : error C2143: syntax error : missing ';' before 'type' 181>.\allegro5\addons\color\color.c(771) : error C2143: syntax error : missing ';' before 'type' 191>.\allegro5\addons\color\color.c(772) : error C2143: syntax error : missing ';' before 'type' 201>.\allegro5\addons\color\color.c(773) : error C2143: syntax error : missing ';' before 'type' 211>.\allegro5\addons\color\color.c(774) : error C2143: syntax error : missing ';' before 'type' 221>.\allegro5\addons\color\color.c(775) : error C2143: syntax error : missing ';' before 'type' 231>.\allegro5\addons\color\color.c(776) : error C2143: syntax error : missing ';' before 'type' 241>.\allegro5\addons\color\color.c(777) : error C2065: 'g' : undeclared identifier 251>.\allegro5\addons\color\color.c(778) : error C2065: 'g' : undeclared identifier 261>.\allegro5\addons\color\color.c(779) : error C2065: 'c1' : undeclared identifier 271>.\allegro5\addons\color\color.c(780) : error C2065: 'c2' : undeclared identifier 281>.\allegro5\addons\color\color.c(781) : error C2143: syntax error : missing ';' before 'type' 291>.\allegro5\addons\color\color.c(782) : error C2065: 'mc' : undeclared identifier 301>.\allegro5\addons\color\color.c(782) : error C2065: 'c1' : undeclared identifier 311>.\allegro5\addons\color\color.c(782) : error C2065: 'c2' : undeclared identifier 321>.\allegro5\addons\color\color.c(783) : error C2065: 'fac' : undeclared identifier 331>.\allegro5\addons\color\color.c(783) : error C2065: 'mc' : undeclared identifier 341>.\allegro5\addons\color\color.c(783) : error C2065: 'mc' : undeclared identifier 351>.\allegro5\addons\color\color.c(784) : error C2143: syntax error : missing ';' before 'type' 361>.\allegro5\addons\color\color.c(785) : error C2143: syntax error : missing ';' before 'type' 371>.\allegro5\addons\color\color.c(786) : error C2143: syntax error : missing ';' before 'type' 381>.\allegro5\addons\color\color.c(787) : error C2143: syntax error : missing ';' before 'type' 391>.\allegro5\addons\color\color.c(788) : error C2065: 'c1' : undeclared identifier 401>.\allegro5\addons\color\color.c(788) : error C2065: 'c2' : undeclared identifier 411>modaudio.c 421>voc.c 431>.\allegro5\addons\color\color.c(789) : error C2065: 'dh' : undeclared identifier 441>.\allegro5\addons\color\color.c(789) : error C2065: 'h2' : undeclared identifier 451>.\allegro5\addons\color\color.c(789) : error C2065: 'h1' : undeclared identifier 461>.\allegro5\addons\color\color.c(790) : error C2065: 'dh' : undeclared identifier 471>.\allegro5\addons\color\color.c(790) : error C2065: 'pi' : undeclared identifier 481>.\allegro5\addons\color\color.c(790) : error C2065: 'dh' : undeclared identifier 491>.\allegro5\addons\color\color.c(790) : error C2065: 'pi' : undeclared identifier 501>.\allegro5\addons\color\color.c(791) : error C2065: 'dh' : undeclared identifier 511>.\allegro5\addons\color\color.c(791) : error C2065: 'pi' : undeclared identifier 521>.\allegro5\addons\color\color.c(791) : error C2065: 'dh' : undeclared identifier 531>.\allegro5\addons\color\color.c(791) : error C2065: 'pi' : undeclared identifier 541>.\allegro5\addons\color\color.c(792) : error C2065: 'h1' : undeclared identifier 551>.\allegro5\addons\color\color.c(792) : error C2065: 'h2' : undeclared identifier 561>.\allegro5\addons\color\color.c(792) : error C2065: 'pi' : undeclared identifier 571>.\allegro5\addons\color\color.c(792) : error C2065: 'mh' : undeclared identifier 581>.\allegro5\addons\color\color.c(792) : error C2065: 'h1' : undeclared identifier 591>.\allegro5\addons\color\color.c(792) : error C2065: 'h2' : undeclared identifier 601>.\allegro5\addons\color\color.c(793) : error C2065: 'h1' : undeclared identifier 611>.\allegro5\addons\color\color.c(793) : error C2065: 'h2' : undeclared identifier 621>.\allegro5\addons\color\color.c(793) : error C2065: 'pi' : undeclared identifier 631>.\allegro5\addons\color\color.c(793) : error C2065: 'mh' : undeclared identifier 641>.\allegro5\addons\color\color.c(793) : error C2065: 'h1' : undeclared identifier 651>.\allegro5\addons\color\color.c(793) : error C2065: 'h2' : undeclared identifier 661>.\allegro5\addons\color\color.c(793) : error C2065: 'pi' : undeclared identifier 671>.\allegro5\addons\color\color.c(794) : error C2065: 'mh' : undeclared identifier 681>.\allegro5\addons\color\color.c(794) : error C2065: 'h1' : undeclared identifier 691>.\allegro5\addons\color\color.c(794) : error C2065: 'h2' : undeclared identifier 701>.\allegro5\addons\color\color.c(794) : error C2065: 'pi' : undeclared identifier 711>.\allegro5\addons\color\color.c(796) : error C2065: 'dh' : undeclared identifier 721>.\allegro5\addons\color\color.c(796) : error C2065: 'c1' : undeclared identifier 731>.\allegro5\addons\color\color.c(796) : error C2065: 'c2' : undeclared identifier 741>.\allegro5\addons\color\color.c(796) : error C2065: 'dh' : undeclared identifier 751>.\allegro5\addons\color\color.c(797) : error C2143: syntax error : missing ';' before 'type'

The rest is too long to post, and you may view it here:

https://pastebin.com/wesKpgFu

Why do I have the feeling that MSYS is mandatory to compile allegro?

Edgar Reynaldo
Member #8,592
May 2007
avatar

First, you're compiling the wrong branch.

You have to checkout 4.4 before creating a build directory and changing to it. If you want to build 4.4 with MSVC, you'll need a really old version of DirectX to do it.

Find the DXSDK from Aug 2006 here :
https://www.microsoft.com/en-us/download/confirmation.aspx?id=10368

If you meant instead to build Allegro 5, there is a NuGet package for newer versions of MSVC available.

See SiegeLord's NuGet packages page here :
https://www.nuget.org/profiles/SiegeLord

Edit
Also, you don't need MSYS to compile Allegro 4.4, just ogg and vorbis, but they wouldn't be compatible with MSVC.

ZoriaRPG
Member #16,714
July 2017
avatar

Aye, I was an idiot. I wanted to be lazy, and grab the files as a ZIP. I should most a video of this, as it is stunningly absurd: GH removed the ability to toggle branches on Firefox older than N, without specifying what 'N' version they allow. I had to jump into Chrome, or open yet-another-git-bash prompt.

I'm not sure which needs more resources.

I just ran the entire allegro codebase, using the DirectX SDK (June 2010, plus two files (ddraw.h and ddraw.lib) from the Feb 2010 SDK. It all compiled, and it output the libs. I thankfully already had libogg compiled.

These are the output files in lib/Release :
jpalleg.lib ( 59.2K )
loadpng.lib ( 22.5K )
alleg.lib ( 1.49MB )

Plus a huge list of .obj files in their own paths...but no alleg.dll ?

Did I miss a setting, a step, or a file? Is that what the SHARED flag generates?

If so, what are the proper flags to ensure that everything is static linked (using the CMake GUI).

One other thing... pkgConfig is Linux-only; yes? The tooltip for it in the CMake file does not notify Linux/Unix in every instance where they are *nix-only, such as ALSA. (It also should say 'Linux', not 'Unix', in these instances, unless this compiles on Solaris or System V, or something along those lines.)

I'm doing a clean+rebuild now, to see if that SHARED flag generates the .dll file.

Hmm, aye, SHARED generates the dlls, but not a monolithic static-linked dll. It generated alleg44.dll, jpgaleg.dll, and loadpng.dll. I definitely need the flags to instruct CMake to do that. ???

Edgar Reynaldo
Member #8,592
May 2007
avatar

ZoriaRPG
Member #16,714
July 2017
avatar

Allegro 4 doesn't have the WANT_MONOLITH option. It would be nice, but it's not implemented currently.

4.4.2 built the dll as one file. Has this been disabled somehow? I seem to remember building alleg44.dll as one file under 4.4.3 in the past, too.

Go to: