realnc / frobtads

Linux and macOS development tools and text-mode interpreter for TADS adventure games.
49 stars 12 forks source link

Compiler errors with gcc 11.4.0 #15

Closed Frunit closed 2 months ago

Frunit commented 2 months ago

I tried to compile this project according to the INSTALL file (with separate build dir) on Linux Mint (like Ubuntu) with gcc 11.4.0. First, I got the following error:

  CXX      tads3/charmap.o
In file included from ../tads3/osifcnet.h:942,
                 from ../tads3/vmdatasrc.h:23,
                 from ../tads3/charmap.cpp:31:
../tads3/unix/osnetunix.h:222:33: error: missing '(' after "__has_builtin"
  222 | # if __has_builtin(__has_builtin)
      |                                 ^
../tads3/unix/osnetunix.h:222:20: error: macro "__has_builtin" requires an identifier
  222 | # if __has_builtin(__has_builtin)
      |                    ^~~~~~~~~~~~~
make[1]: *** [Makefile:6599: tads3/charmap.o] Error 1

I patched that (badly) by changing the line to # if __has_builtin(asdf). Next up was

   CXX      tads3/tct3stm.o
../tads3/tct3stm.cpp: In static member function ‘static void CTPNVarIn::gen_iter_init(CTcPrsNode*, int, const char*)’:
../tads3/tct3stm.cpp:318:21: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
  318 |     if (create_iter != VM_INVALID_PROP)
      |         ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
make[1]: *** [Makefile:6599: tads3/tct3stm.o] Error 1

At which point I stopped (and used tads in Windows). Any chance that these might be fixed? It would be really nice to be able to run these on Linux! :) Of course, I can provide versions and test things, if that helps.

Frunit commented 2 months ago

Nevermind, I used make instead of cmake. Using cmake, it works nicely :)