3Dickulus / FragM

Derived from https://github.com/Syntopia/Fragmentarium/
GNU General Public License v3.0
344 stars 30 forks source link

failed build #177

Closed SvenGeier closed 3 years ago

SvenGeier commented 3 years ago

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 '_ZTVN10cxxabiv121vmi_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...

3Dickulus commented 3 years ago

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.

3Dickulus commented 3 years ago

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.

SvenGeier commented 3 years ago

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)

3Dickulus commented 3 years ago

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.