Jump to content
The Dark Mod Forums
Sign in to follow this  
7318

Darkradiant on Ubuntu 19.4

Recommended Posts

after compiling when executing the program i get the following message and then a memory overflow:

$ darkradiant
Fatal Error: Mismatch between the program and library build versions detected.
The library used 3.1.2 (wchar_t,compiler with C++ ABI 1011,wx containers,compatible with 3.0),
and your program used 3.1.2 (wchar_t,compiler with C++ ABI 1013,wx containers,compatible with 3.0).
Avortat (s'ha bolcat la memòria)

it seems that ubuntu supplies the wx library compiled with the 2013 c++ ABI and darkradiant needs it compiled with 2011?

Edited by 7318

Share this post


Link to post
Share on other sites

I think it's the other way around, the wx packages provided by Ubuntu were compiled using the 1011 ABI, whereas you used a newer compiler to build DR. Which gcc version are you using, and is it the one from the default Ubuntu apt package?

 

I guess you can do two things: Either downgrade the compiler to some that is using ABI 1011, or recompile the wxGTK package for your system manually using the newer compiler.

Share this post


Link to post
Share on other sites

Note that modern versions of Ubuntu package several different versions of GCC. On my system I have gcc-4.8, gcc-5 and gcc-7 all installed and available at the command line.

 

As greebo says, you should make sure that you are compiling DarkRadiant with the default compiler version which was used to compile the system wxWidgets libraries. A quick look at the release notes suggests this might be GCC 8.3, but I don't yet have 19.4 so I can't confirm for sure.

Share this post


Link to post
Share on other sites

I'm compiling with the default, i see I have gcc-7 and gcc-8, maybe the default is now gcc-8?

Share this post


Link to post
Share on other sites

Maybe try setting the compiler via the environment before running the build:

 

CXX="g++-7" ./configure --enable-darkmod-plugins && make -j3 && make install

 

Something along these lines.

Share this post


Link to post
Share on other sites

this is in the configure.ac file?

 

I've tried the line directly on the Darkradiant base folder and got this:

$ CXX="g++-7" ./configure --enable-darkmod-plugins && make -j3 && make install
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking for msgfmt... yes
checking for msgmerge... yes
checking for xgettext... yes
checking whether we are using the GNU C++ compiler... no
checking whether g++-7 accepts -g... no
checking dependency style of g++-7... none
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm - interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... failed
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for mt... mt
checking if mt is a manifest tool... no
checking for ANSI C header files... no
checking for sys/types.h... no
checking for sys/stat.h... no
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... no
checking for dlfcn.h... no
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking how to run the C++ preprocessor... /lib/cpp
checking whether the g++-7 linker (/usr/bin/ld) supports shared libraries... yes
libtool.m4: error: problem compiling CXX test program
checking for g++-7 option to produce PIC...  -DPIC
checking if g++-7 PIC flag  -DPIC works... no
checking if g++-7 static flag  works... no
checking if g++-7 supports -c -o file.o... no
checking if g++-7 supports -c -o file.o... (cached) no
checking whether the g++-7 linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... unsupported
checking whether g++-7 supports C++11 features by default... no
checking whether g++-7 supports C++11 features with -std=c++11... no
checking whether g++-7 supports C++11 features with +std=c++11... no
checking whether g++-7 supports C++11 features with -h std=c++11... no
checking whether g++-7 supports C++11 features with -std=c++0x... no
checking whether g++-7 supports C++11 features with +std=c++0x... no
checking whether g++-7 supports C++11 features with -h std=c++0x... no
configure: error: *** A compiler with support for C++11 language features is required.

g++-7 should support c++11 features, isn't it?

Edited by 7318

Share this post


Link to post
Share on other sites

Yeah, it should. Maybe that env hack is not working, is this post helpful? https://askubuntu.com/a/1028656

 

Especially the command here about choosing the default:

sudo update-alternatives --config gcc

Share this post


Link to post
Share on other sites

sudo update-alternatives --config gcc

 

tells me there is no alternative to choose from

 

after the update to Ubuntu 19.4 all I got is gcc-7 and gcc-8 installed, and only g++-8 installed.

 

Both gcc --version and g++ --version report as (Ubuntu 8.3.0-6ubuntu1) 8.3.0

 

maybe I should install g++-7?

Edited by 7318

Share this post


Link to post
Share on other sites

Well, I guess so. If the wxGTK package on Ubuntu was using g++7, then there's only two possibilities: either downgrade the compiler used to build DarkRaidant to g++-7 (that is using ABI 1011), or recompile the wxGTK package for your system manually using the newer g++-8 compiler.

Share this post


Link to post
Share on other sites

C++11 support was available in GCC around version 4, I believe, and should be enabled by default in GCC 6.0. So if your build is complaining that GCC 7 doesn't support C++11 there must be something very weird going on with your compiler versions.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...