Author Topic: [Solved] Trying to install OXCE V5.6.2 on Linux Mint?  (Read 8796 times)

Offline The Martian

  • Commander
  • *****
  • Posts: 754
  • "It implores you to listen to its arguments..."
    • View Profile
[Solved] Trying to install OXCE V5.6.2 on Linux Mint?
« on: September 01, 2019, 12:36:05 pm »
OpenXcom Extended's features are pretty cool so I figured I'd try creating a few mods for it, unfortunately I've run into trouble trying to install it on Linux.

On the "OXCE v5.6.2 download & installation guide" page I clicked the "Latest version(s) for Linux." link and it took me to a page that appears to also contain the Windows 32, Windows 64 and Android versions along with something called Xenial, Bionic and Stretch.

Bionic seems to be the newest non-windows version so I downloaded that, however the OpenXcomEx file does not appear to run when I attempt to launch it.

Is there a trick to this or have I downloaded the wrong version?

The OS I'm currently running is Linux Mint 18.3 64Bit.


The exact version of
OXCE I tried to run is:
Extended-5.6.2-f1432e36d-2019-08-27-bionic-x86_64.7z
« Last Edit: February 06, 2023, 11:39:47 am by Meridian »

Offline The Martian

  • Commander
  • *****
  • Posts: 754
  • "It implores you to listen to its arguments..."
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #1 on: September 01, 2019, 01:19:33 pm »
I tried downloading Xenial version "Extended-5.6.2-1e89df6-2019-08-15-xenial-x86_64.7z" instead and the icon for OpenXcomEx has changed its appearance compared to the Bionic version.

However there is still no visible effect when I attempt to launch it.

Offline SupSuper

  • Lazy Developer
  • Administrator
  • Commander
  • *****
  • Posts: 2159
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #2 on: September 01, 2019, 03:02:45 pm »
The Linux versions are compiled for Ubuntu, so there might be issues in other distros.
- Try to run the executable from the terminal, so you can see any errors that may show up.
- Make sure you have the libraries installed: libsdl1.2, libsdl-mixer1.2, libsdl-gfx1.2, libsdl-image1.2, libyaml-cpp
- If all else fails, you can try compiling it yourself, it's pretty straightforward: https://openxcom.org/forum/index.php/topic,7048.0.html

Offline R1dO

  • Colonel
  • ****
  • Posts: 436
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #3 on: September 01, 2019, 06:20:01 pm »
Just to rule out some gcc (pie) weirdness.

If you right-click on those files and select properties, does it say something like "executable" or "shared library"?

Edit
If it turns out to be the latter.
Try dropping the attached file into the folder containing the executable and use that file as starter (remove the .txt part from the name, it was needed to allow upload). It might circumvent the problem.
« Last Edit: September 01, 2019, 11:00:42 pm by R1dO »

Offline The Martian

  • Commander
  • *****
  • Posts: 754
  • "It implores you to listen to its arguments..."
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #4 on: September 02, 2019, 11:22:22 am »
- Try to run the executable from the terminal, so you can see any errors that may show up.
I tried to run the Bionic version using this command in the terminal "bash OpenXcomEx" and it produced the following error:
"OpenXcomEx: OpenXcomEx: cannot execute binary file"

Just typing "OpenXcomEx" in the terminal yields: "OpenXcomEx: command not found".

Typing the executable's name was how programs were run in MS-DOS so maybe the procedure is different in the linux terminal, I'm still getting the hang of it.



The Linux versions are compiled for Ubuntu, so there might be issues in other distros.
I believe Linux Mint is based off Ubuntu so I wasn't expecting there to be a problem running software for it.

Specifically Mint 18.3 is based off Ubuntu 16.04 ... which I just noticed has the subcaption of (Xenial Xerus) when I looked it up.

Now that I'm looking at the later version of Mint (19+) which are based off of Ubuntu 18.04 they also have a subcaption which is (Bionic Beaver)

Is this what the Xenial and Bionic versions are? Xenial for Ubuntu 16.04 and Bionic for Ubuntu 18.04?


I've been pretty happy with my current version of Linux Mint but I guess I could also try installing the later versions to see if that has an effect on the Bionic version of OXCE if nothing else works.


If you right-click on those files and select properties, does it say something like "executable" or "shared library"?
The Bionic version lists its Type as: Unknown (application/x-sharedlib)
The Xenial version lists its Type as: Program (application/x-executable)



Try dropping the attached file into the folder containing the executable and use that file as starter
When trying to launch via OpenXcomEx.desktop for both the Bionic and Xenial versions I get the following error:
"There was an error launching the application."



- Make sure you have the libraries installed: libsdl1.2, libsdl-mixer1.2, libsdl-gfx1.2, libsdl-image1.2, libyaml-cpp
I then tried installing these via the "sudo apt-get install" command:
libsdl1.2 [No installation candidate, but oddly libsdl-gfx1.2 below included it so it is installed... I think.]
libsdl-mixer1.2 [Installed successfully.]
libsdl-gfx1.2 [Installed successfully, and appears to have installed libsdl1.2 as one of its dependencies.]
libsdl-image1.2 [Was already installed.]
libyaml-cpp [Unable to locate package libyaml-cpp]

libsdl1.2 terminal results:
Code: [Select]
sudo apt-get install libsdl1.2
[sudo] password for ____:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libsdl1.2 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libsdl1.2' has no installation candidate
libyaml-cpp  terminal results:
Code: [Select]
sudo apt-get install libyaml-cpp
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libyaml-cpp



Now that most of the above libraries are installed the OpenXcomEx.desktop still gives me a "There was an error launching the application." error, however the Xenial version of OXCE launches if I directly click the OpenXcomEx file!

I only tried playing it for a few minutes and everything seems to be working even though the "libyaml-cpp" library was not successfully installed.
(Will the missing libyaml-cpp library be a problem?)


I also tried running the Bionic version as I believe it is more up-to-date than the Xenial version and the following error was displayed when OpenXcomEx file was launched:
Code: [Select]
OpenXcom has crashed: FileRecord::at(openxcom.png): requested file not found.
Log file: /home/NAME/.local/share/openxcom/openxcom.log
If this error was unexpected, please report it on OpenXcom forum or discord.
The following can help us solve the problem:
1. a saved game from just before the crash (helps 98%)
2. a detailed description how to reproduce the crash (helps 80%)
3. a log file (helps 10%)
4. a screenshot of this error message (helps 5%)
So on the plus side the Bionic version is no longer doing nothing when I try to launch it.

I'll attach both a screenshot of the error message and the log file to this post.
(So hopefully with both the screenshot & log that at least helps at a rate of 15%)


- If all else fails, you can try compiling it yourself, it's pretty straightforward: https://openxcom.org/forum/index.php/topic,7048.0.html
As the Xenial version appears to be less up-to-date than the Bionic version I'll also give compiling it a try in a moment.

Thank you for posting the compiling instruction guide link it seems easy enough to follow.




By the way, the OpenXcom Nightly linux builds use a program called AppImage(https://appimage.org/) to encapsulate the OpenXcom program and all required dependencies. Perhaps it would be possible for there to be a future OXCE release download option that makes use of this as well?

Quote from: AppImage
Download an application, make it executable, and run! No need to install. No system libraries or system preferences are altered.

Distribute your desktop Linux application in the AppImage format and win users running all common Linux distributions. Package once and run everywhere. Reach users on all major desktop distributions.
I can only comment on its compatibility with the Linux Mint OS but I've been using standard OpenXcom for a while and so far the AppImage distribution method has been working fine.
« Last Edit: September 02, 2019, 11:25:13 am by The Martian »

Offline Meridian

  • Global Moderator
  • Commander
  • *****
  • Posts: 8597
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #5 on: September 02, 2019, 11:48:47 am »
I am a complete linux noob, just want to share that it works for me.
I have downloaded: https://lxnt.wtf/oxem/builds//Extended/Extended-5.6.2-f6ef25ae8-2019-09-01-bionic-x86_64.7z
Extracted, copied UFO data and just clicked on OpenXcomEx.

I have Kubuntu 18.04 running in Windows under Oracle VirtualBox.

Offline The Martian

  • Commander
  • *****
  • Posts: 754
  • "It implores you to listen to its arguments..."
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #6 on: September 02, 2019, 12:06:46 pm »
I've been trying to compile the latest version using the guide's instructions.

However I've run into an error message right at the second to last step.


During "Step 2.2 Now OXCE itself" when I use the command:
cmake .. -DCMAKE_BUILD_TYPE=Release -DDEV_BUILD=OFF -DBUILD_PACKAGE=OFF

The following error is produced:
Code: [Select]
-- Configuring done
CMake Error at src/CMakeLists.txt:538 (add_executable):
  CXX_STANDARD is set to invalid value '17'


Here is the full terminal output:
Code: [Select]
cmake .. -DCMAKE_BUILD_TYPE=Release -DDEV_BUILD=OFF -DBUILD_PACKAGE=OFF
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test COMPILER_SUPPORTS_CXX17
-- Performing Test COMPILER_SUPPORTS_CXX17 - Success
-- Performing Test COMPILER_SUPPORTS_CXX1Z
-- Performing Test COMPILER_SUPPORTS_CXX1Z - Success
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so 
-- OpenGL libraries: /usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'sdl'
--   Found sdl, version 1.2.15
-- Checking for module 'zlib'
--   Found zlib, version 1.2.8
-- Checking for module 'SDL_image'
--   Found SDL_image, version 1.2.12
-- Checking for module 'SDL_gfx'
--   Found SDL_gfx, version 2.0.25
-- Checking for module 'SDL_mixer'
--   Found SDL_mixer, version 1.2.12
-- Checking for module 'yaml-cpp'
--   Found yaml-cpp, version 0.6.2
-- PKG_DEPS_LDFLAGS: -lSDL;-lz;-lSDL_image;-lSDL;-lSDL_gfx;-lSDL;-lSDL_mixer;-lSDL;-L/usr/local/lib;-lyaml-cpp;/usr/lib/x86_64-linux-gnu/libGLU.so;/usr/lib/x86_64-linux-gnu/libGL.so;dl
-- Found Git: /usr/bin/git (found version "2.7.4")
CMake Warning at docs/CMakeLists.txt:36 (message):
  Doxygen not found.  API documentation generation disabled.


-- Configuring done
CMake Error at src/CMakeLists.txt:538 (add_executable):
  CXX_STANDARD is set to invalid value '17'


-- Generating done
-- Build files have been written to: /home/NAME/OXCE/OpenXcom/build
I'm new to compiling programs from source code so I'm not really sure what I'm looking at.

However from what I've read CXX_STANDARD when set to 17 may be related to VC++ 2017, which I believe makes sense as the guide's Windows instructions mention Visual Studio 2017.


Do I need to install Visual Studio 2017 to compile it on Linux?
(I'm not sure there is a Linux version of that as I believe it is a Microsoft product.)

Offline The Martian

  • Commander
  • *****
  • Posts: 754
  • "It implores you to listen to its arguments..."
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #7 on: September 02, 2019, 12:14:41 pm »
I just tried running the final command in the compiling guide "make -j4" and as error displayed in red appeared several times I'm guessing the build failed to complete.

Here is the terminal output:

Code: [Select]
make -j4
Scanning dependencies of target openxcom
[  0%] Building CXX object src/CMakeFiles/openxcom.dir/lodepng.cpp.o
[  0%] Building C object src/CMakeFiles/openxcom.dir/__/libs/miniz/miniz.c.o
[  0%] Building CXX object src/CMakeFiles/openxcom.dir/main.cpp.o
[  1%] Building CXX object src/CMakeFiles/openxcom.dir/md5.cpp.o
/home/NAME/OXCE/OpenXcom/libs/miniz/miniz.c: In function ‘tdefl_find_match’:
/home/NAME/OXCE/OpenXcom/libs/miniz/miniz.c:1364:5: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     mz_uint16 c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]),
     ^
/home/NAME/OXCE/OpenXcom/libs/miniz/miniz.c:1381:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             TDEFL_PROBE;
             ^
/home/NAME/OXCE/OpenXcom/libs/miniz/miniz.c:1382:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             TDEFL_PROBE;
             ^
/home/NAME/OXCE/OpenXcom/libs/miniz/miniz.c:1383:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             TDEFL_PROBE;
             ^
/home/NAME/OXCE/OpenXcom/libs/miniz/miniz.c:1407:13: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
             c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]);
             ^
/home/NAME/OXCE/OpenXcom/libs/miniz/miniz.c: In function ‘mz_zip_validate_file’:
/home/NAME/OXCE/OpenXcom/libs/miniz/miniz.c:5255:9: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
         has_id = (MZ_READ_LE32(descriptor_buf) == MZ_ZIP_DATA_DESCRIPTOR_ID);
         ^
/home/NAME/OXCE/OpenXcom/src/md5.cpp: In static member function ‘static MD5::uint4 MD5::F(MD5::uint4, MD5::uint4, MD5::uint4)’:
/home/NAME/OXCE/OpenXcom/src/md5.cpp:62:11: warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses]
   return x&y | ~x&z;
           ^
/home/NAME/OXCE/OpenXcom/src/md5.cpp: In static member function ‘static MD5::uint4 MD5::G(MD5::uint4, MD5::uint4, MD5::uint4)’:
/home/NAME/OXCE/OpenXcom/src/md5.cpp:66:11: warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses]
   return x&z | y&~z;
           ^
[  1%] Building CXX object src/CMakeFiles/openxcom.dir/Basescape/BaseInfoState.cpp.o
[  1%] Building CXX object src/CMakeFiles/openxcom.dir/Basescape/BaseView.cpp.o
In file included from /home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/Craft.h:24:0,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/SavedGame.h:28,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/BaseInfoState.cpp:33:
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:113:16: error: ‘auto’ parameter not permitted in this context
  template<auto Stat, typename TBind>
                ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h: In static member function ‘static void OpenXcom::RuleCraftStats::addGetStatsScript(TBind&, std::__cxx11::string)’:
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: error: ‘Stat’ was not declared in this scope
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:117:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::damageMax>(prefix + "getDamageMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:118:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::speedMax>(prefix + "getSpeedMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:119:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::accel>(prefix + "getAccel");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:120:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::radarRange>(prefix + "getRadarRange");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:121:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::radarChance>(prefix + "getRadarChance");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:122:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::sightRange>(prefix + "getSightRange");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:123:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::hitBonus>(prefix + "getHitBonus");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:124:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::avoidBonus>(prefix + "getAvoidBonus");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:125:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::powerBonus>(prefix + "getPowerBonus");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:126:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::armor>(prefix + "getArmor");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:127:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::shieldCapacity>(prefix + "getShieldCapacity");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:128:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::shieldRecharge>(prefix + "getShieldRecharge");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:129:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::shieldRechargeInGeoscape>(prefix + "getShieldRechargeInGeoscape");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:130:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::shieldBleedThrough>(prefix + "getShieldBleedThrough");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
src/CMakeFiles/openxcom.dir/build.make:158: recipe for target 'src/CMakeFiles/openxcom.dir/Basescape/BaseInfoState.cpp.o' failed
make[2]: *** [src/CMakeFiles/openxcom.dir/Basescape/BaseInfoState.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/Craft.h:24:0,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/BaseView.cpp:28:
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:113:16: error: ‘auto’ parameter not permitted in this context
  template<auto Stat, typename TBind>
                ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h: In static member function ‘static void OpenXcom::RuleCraftStats::addGetStatsScript(TBind&, std::__cxx11::string)’:
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: error: ‘Stat’ was not declared in this scope
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:117:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::damageMax>(prefix + "getDamageMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:118:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::speedMax>(prefix + "getSpeedMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:119:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::accel>(prefix + "getAccel");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:120:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::radarRange>(prefix + "getRadarRange");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:121:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::radarChance>(prefix + "getRadarChance");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:122:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::sightRange>(prefix + "getSightRange");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:123:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::hitBonus>(prefix + "getHitBonus");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:124:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::avoidBonus>(prefix + "getAvoidBonus");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:125:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::powerBonus>(prefix + "getPowerBonus");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:126:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::armor>(prefix + "getArmor");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:127:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::shieldCapacity>(prefix + "getShieldCapacity");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:128:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::shieldRecharge>(prefix + "getShieldRecharge");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:129:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::shieldRechargeInGeoscape>(prefix + "getShieldRechargeInGeoscape");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:130:23: error: the value of ‘Stat’ is not usable in a constant expression
   b.template addField<Stat, &RuleCraftStats::shieldBleedThrough>(prefix + "getShieldBleedThrough");
                       ^
/home/NAME/OXCE/OpenXcom/src/Basescape/../Savegame/../Mod/RuleCraft.h:116:23: note: ‘Stat’ was not declared ‘constexpr’
   b.template addField<Stat, &RuleCraftStats::fuelMax>(prefix + "getFuelMax");
                       ^
src/CMakeFiles/openxcom.dir/build.make:182: recipe for target 'src/CMakeFiles/openxcom.dir/Basescape/BaseView.cpp.o' failed
make[2]: *** [src/CMakeFiles/openxcom.dir/Basescape/BaseView.cpp.o] Error 1
CMakeFiles/Makefile2:103: recipe for target 'src/CMakeFiles/openxcom.dir/all' failed
make[1]: *** [src/CMakeFiles/openxcom.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Offline Meridian

  • Global Moderator
  • Commander
  • *****
  • Posts: 8597
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #8 on: September 02, 2019, 12:31:59 pm »
I'm new to compiling programs from source code so I'm not really sure what I'm looking at.

However from what I've read CXX_STANDARD when set to 17 may be related to VC++ 2017, which I believe makes sense as the guide's Windows instructions mention Visual Studio 2017.

Do I need to install Visual Studio 2017 to compile it on Linux?
(I'm not sure there is a Linux version of that as I believe it is a Microsoft product.)

You don't need to install visual studio and the error is not related to visual studio in any way.

CXX_STANDARD 17 means you need a compiler that supports c++17

Your current compiler version GNU 5.4.0 doesn't support it, you need at least version 7, I would recommend at least version 8: https://gcc.gnu.org/projects/cxx-status.html#cxx17

Also, updating cmake itself may be necessary.

Offline Yankes

  • Commander
  • *****
  • Posts: 3194
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #9 on: September 02, 2019, 09:56:40 pm »
error with `CXX_STANDARD` could mean that your cmake is too old and do not know new C++17 standard.

if you can't upgrade cmake or gcc you could fro now try older version of OXCE, this change that bump C++ standard was done couple weeks ago, and before that it could be compiled using older gcc.


Offline The Martian

  • Commander
  • *****
  • Posts: 754
  • "It implores you to listen to its arguments..."
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #10 on: September 03, 2019, 10:43:39 am »
I've updated to Linux Mint 19.2. (Which is based off Ubuntu 18.04 "Bionic Beaver") which if I'm not mistaken has the GNU compiler pre-installed at a higher version. Specifically:
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)

Before attempting to compile the latest source code I redownloaded and attempted to run "Extended-5.6.2-f6ef25ae8-2019-09-01-bionic-x86_64.7z" via the terminal using "bash OpenXcomEx" it fails to run with an error message of:
"OpenXcomEx: OpenXcomEx: cannot execute binary file"

If I just click on the OpenXcomEx file I get an error of: "Unknown File Type"

Trying to launch it via R1dO's OpenXcomEx.desktop file produces a "There was an error launching the application." message

Trying to run OpenXcomEx.desktop in the terminal via "bash OpenXcomEx.desktop" yields an error message of:

Code: [Select]
OpenXcomEx.desktop: line 1: [Desktop: command not found
OpenXcomEx.desktop: line 2: Extended: command not found




Afterward I attempted to compile the source code using the newer version of the compiler and this time there were no red error messages, however several purple Warning messages did appear.

Unfortunately the "openxcom" program file created by compiling the source code also gives me a "Unknown file type" error when I click it instead of launching the program.


I'll attach a text copy of the full output of the "make -j4" command to this post in case it helps identify the problem.

Here are some examples of the
Warnings that kept being displayed while it was compiling:
Code: [Select]
[  1%] Building CXX object src/CMakeFiles/openxcom.dir/md5.cpp.o
/home/NAME/OXCE/OpenXcom/src/md5.cpp: In static member function ‘static MD5::uint4 MD5::F(MD5::uint4, MD5::uint4, MD5::uint4)’:
/home/NAME/OXCE/OpenXcom/src/md5.cpp:62:11: warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses]
   return x&y | ~x&z;
          ~^~
/home/NAME/OXCE/OpenXcom/src/md5.cpp: In static member function ‘static MD5::uint4 MD5::G(MD5::uint4, MD5::uint4, MD5::uint4)’:
/home/NAME/OXCE/OpenXcom/src/md5.cpp:66:11: warning: suggest parentheses around arithmetic in operand of ‘|’ [-Wparentheses]
   return x&z | y&~z;
          ~^~
Code: [Select]
[  3%] Building CXX object src/CMakeFiles/openxcom.dir/Basescape/CraftEquipmentState.cpp.o
In file included from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/OpenGL.h:14:0,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/Screen.h:22,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/CraftEquipmentState.cpp:27:
/usr/include/SDL/SDL_opengl.h:116:0: warning: "GL_GLEXT_VERSION" redefined
 #define GL_GLEXT_VERSION 29
 
In file included from /usr/include/GL/gl.h:2055:0,
                 from /usr/include/SDL/SDL_opengl.h:46,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/OpenGL.h:14,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/Screen.h:22,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/CraftEquipmentState.cpp:27:
/usr/include/GL/glext.h:54:0: note: this is the location of the previous definition
 #define GL_GLEXT_VERSION 20180725
Code: [Select]
[  8%] Building CXX object src/CMakeFiles/openxcom.dir/Basescape/PlaceFacilityState.cpp.o
/home/NAME/OXCE/OpenXcom/src/Basescape/PlaceFacilityState.cpp: In constructor ‘OpenXcom::PlaceFacilityState::PlaceFacilityState(OpenXcom::Base*, OpenXcom::RuleBaseFacility*, OpenXcom::BaseFacility*)’:
/home/NAME/OXCE/OpenXcom/src/Basescape/PlaceFacilityState.cpp:114:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (name.length() > max)
        ~~~~~~~~~~~~~~^~~~~
Code: [Select]
[ 13%] Building CXX object src/CMakeFiles/openxcom.dir/Basescape/SoldiersState.cpp.o
In file included from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/OpenGL.h:14:0,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/Screen.h:22,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/SoldiersState.cpp:21:
/usr/include/SDL/SDL_opengl.h:116:0: warning: "GL_GLEXT_VERSION" redefined
 #define GL_GLEXT_VERSION 29
 
In file included from /usr/include/GL/gl.h:2055:0,
                 from /usr/include/SDL/SDL_opengl.h:46,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/OpenGL.h:14,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/Screen.h:22,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/SoldiersState.cpp:21:
/usr/include/GL/glext.h:54:0: note: this is the location of the previous definition
 #define GL_GLEXT_VERSION 20180725
 
[ 13%] Building CXX object src/CMakeFiles/openxcom.dir/Basescape/SoldierTransformationState.cpp.o
In file included from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/OpenGL.h:14:0,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/Screen.h:22,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/SoldierTransformationState.cpp:26:
/usr/include/SDL/SDL_opengl.h:116:0: warning: "GL_GLEXT_VERSION" redefined
 #define GL_GLEXT_VERSION 29
 
In file included from /usr/include/GL/gl.h:2055:0,
                 from /usr/include/SDL/SDL_opengl.h:46,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/OpenGL.h:14,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/../Engine/Screen.h:22,
                 from /home/NAME/OXCE/OpenXcom/src/Basescape/SoldierTransformationState.cpp:26:
/usr/include/GL/glext.h:54:0: note: this is the location of the previous definition
 #define GL_GLEXT_VERSION 20180725
 
Code: [Select]
[ 17%] Building CXX object src/CMakeFiles/openxcom.dir/Battlescape/AlienInventory.cpp.o
In file included from /home/NAME/OXCE/OpenXcom/src/Battlescape/../Engine/OpenGL.h:14:0,
                 from /home/NAME/OXCE/OpenXcom/src/Battlescape/../Engine/Screen.h:22,
                 from /home/NAME/OXCE/OpenXcom/src/Battlescape/AlienInventory.cpp:26:
/usr/include/SDL/SDL_opengl.h:116:0: warning: "GL_GLEXT_VERSION" redefined
 #define GL_GLEXT_VERSION 29
 
In file included from /usr/include/GL/gl.h:2055:0,
                 from /usr/include/SDL/SDL_opengl.h:46,
                 from /home/NAME/OXCE/OpenXcom/src/Battlescape/../Engine/OpenGL.h:14,
                 from /home/NAME/OXCE/OpenXcom/src/Battlescape/../Engine/Screen.h:22,
                 from /home/NAME/OXCE/OpenXcom/src/Battlescape/AlienInventory.cpp:26:
/usr/include/GL/glext.h:54:0: note: this is the location of the previous definition
 #define GL_GLEXT_VERSION 20180725
 






When trying to launch the program by clicking the "openxcom" file found in the "build/bin" folder the "Unknown file type" error does give me the option to "Choose a program" to associate the file with.

As the file itself is the program that needs to run I'm not sure what to do.

Here's a screenshot of the error message:


Offline Meridian

  • Global Moderator
  • Commander
  • *****
  • Posts: 8597
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #11 on: September 03, 2019, 10:57:29 am »
The compilation was successful.
(the warnings can be ignored)

Why you can't run the program is beyond my understanding, but I don't think it's OpenXcom's fault.
It must be something with your system.

Edit: stupid question, but can you check if you have execute permissions on the file?
« Last Edit: September 03, 2019, 11:09:04 am by Meridian »

Offline The Martian

  • Commander
  • *****
  • Posts: 754
  • "It implores you to listen to its arguments..."
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #12 on: September 03, 2019, 11:27:51 am »
I believe the permissions are set correctly, but I could be wrong.

Allow executing file as program is checked, is there a different setting that also needs to be configured?

I'll attach a screenshot of the Permissions menu for OpenXcom's properties.

Edit:
The file type is listed as "Unknown (application/x-sharedlib)" under the "Basic" menu tab.
« Last Edit: September 03, 2019, 11:36:25 am by The Martian »

Offline Meridian

  • Global Moderator
  • Commander
  • *****
  • Posts: 8597
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #13 on: September 03, 2019, 11:52:52 am »
OK, I have installed Linux Mint (linuxmint-19.2-cinnamon-64bit.iso).
Double-clicking doesn't work for me either... but I could get it running from the console.

1/ download OXCE, extract, add UFO data files
2/ open Console
3/ run using ./OpenXcomEx

4/ if you get missing library errors, install them as follows (at least that worked for me):
a/ sudo apt-get update
b/ apt install libsdl-gfx1.2
c/ apt install libsdl-mixer1.2

5/ then run again using ./OpenXcomEx
« Last Edit: September 03, 2019, 11:57:18 am by Meridian »

Offline The Martian

  • Commander
  • *****
  • Posts: 754
  • "It implores you to listen to its arguments..."
    • View Profile
Re: Trying to install OXCE V5.6.2 on Linux Mint?
« Reply #14 on: September 03, 2019, 12:15:45 pm »
Thank you so much!

That got it,
OXCE launched without a problem.