3Dickulus/FragM

failed build

SvenGeier opened this issue · 4 comments

I'm on Mint (= basically Ubuntu)

I apt install'ed g++ (not a named dependency, but otherwise cmake whines about not finding CXX)

I follow the steps on the front page. I get this far:

$ make install
[ 2%] Automatic MOC and UIC for target Fragmentarium-2.5.5
[ 2%] Built target Fragmentarium-2.5.5_autogen
Scanning dependencies of target Fragmentarium-2.5.5
[ 4%] Building CXX object CMakeFiles/Fragmentarium-2.5.5.dir/Fragmentarium-2.5.5_autogen/mocs_compilation.cpp.o

[ ... omitting a bunch of green lines here... ]

[ 68%] Building CXX object CMakeFiles/Fragmentarium-2.5.5.dir/Fragmentarium/GUI/moc_PreferencesDialog.cpp.o
[ 70%] Linking CXX executable Fragmentarium-2.5.5
/usr/bin/ld: CMakeFiles/Fragmentarium-2.5.5.dir/Fragmentarium-2.5.5_autogen/mocs_compilation.cpp.o: undefined reference to symbol '_ZTVN10__cxxabiv121__vmi_class_type_infoE@@CXXABI_1.3'
/usr/bin/ld: /home/sven/anaconda3/lib/libstdc++.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/Fragmentarium-2.5.5.dir/build.make:558: Fragmentarium-2.5.5] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/Fragmentarium-2.5.5.dir/all] Error 2
make: *** [Makefile:152: all] Error 2

This might as well be greek as far as I'm concerned...

looks like it choked on PreferencesDialog ?
make sure these files have been generated...

Fragmentarium-Source/build/ui_VideoDialog.h
Fragmentarium-Source/build/ui_TimeLineDialog.h
Fragmentarium-Source/build/ui_EasingDialog.h
Fragmentarium-Source/build/ui_OutputDialog.h
Fragmentarium-Source/build/ui_PreferencesDialog.h

pushing some changes shortly... try again? it's compiling fine here. try opening the .ui files with Qt designer, saving them or "touch" them and run make

$> cd Fragmentarium-Source/build/
$> make

if the cmake package for your OS came with cmake-gui command cd to Fragmentarium-Source/build/ and run $> cmake-gui .. <return> that will let you see how paths and things are set.

found an obscure reference at... https://marc.info/?l=gcc-bugs&m=140290336500608&w=2

quote: "I have run into a problem today with a GCC toolchain and libstdc++ for a custom
OS target, and the x86_64 architecture (https://github.com/pcmattman/pedigree).
The problem is "solved" by building the toolchain and libstdc++ with -fno-rtti
(as the code paths inside libstdc++ are protected by preprocessor checks for
__GXX_RTTI)."

don't know if it's related but it could be the gcc toolchain you have installed, I have a standard up to date linux development environment using Qt and gcc, nothing special installed, as long as you have the development files for the packages listed and they are available to gcc and friends then it should compile.

Mint toolchain shouldn't be any different - Mint is basically Ubuntu with a bunch of sane defaults.

The named files were all there, I touch'ed them but it didn't change anything. make clean && cmake && make install runs into the same error as before.

Stepping a couple directories up, I rm -rf'ed FragM/ directory and reissued the git clone, then follow all the same steps as before and ... it compiles! Ta-dah. Git is opaque to me, could I have downloaded something right as changes were happening before?

As far as I'm concerned, whatever you just uploaded fixed whatever was broken - so I'll close this.

(There's a compile warning, by the way, that you're not using the return of a write statement somewhere)

hm... I don't get any warnings, the only flag set is -Wno-deprecated Do not warn about usage of deprecated features. for compiling with older versions of Qt GL etc. removed it though, as I want to look forward.

I think it was #include <thread> that fixed it. Sabine reported a similar case but is good now too.