Zip-o-mat / Slic3r

Slic3r with integrated electronics and Nonplanar slicer (see branches)
GNU Affero General Public License v3.0
594 stars 96 forks source link

undefined reference to `vtable for Slic3r::FillGyroid' #42

Closed efa closed 3 years ago

efa commented 3 years ago

current git version: 1.2.9-1424-g08c8a8dd LMDE 4 debbie, based on Debian 10 Buster

$ make end at linking stage with this error:

[ 98%] Linking CXX executable slic3r
/usr/bin/ld: liblibslic3r.a(Fill.cpp.o): in function `Slic3r::FillGyroid::FillGyroid()':
Fill.cpp:(.text._ZN6Slic3r10FillGyroidC2Ev[_ZN6Slic3r10FillGyroidC5Ev]+0x1b): undefined reference to `vtable for Slic3r::FillGyroid'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/slic3r.dir/build.make:98: slic3r] Error 1
make[1]: *** [CMakeFiles/Makefile2:124: CMakeFiles/slic3r.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

I googled around, but related search say to define the destructors for all virtual methods and are already defined.

I figured out what is the link command from Cmake's Makefile and is:

/usr/bin/c++ -std=c++11 -Wall -DM_PI=3.14159265358979323846 -D_GLIBCXX_USE_C99 -DHAS_BOOL -DNOGDI -DBOOST_ASIO_DISABLE_KQUEUE -static-libgcc -static-libstdc++ -rdynamic CMakeFiles/slic3r.dir/slic3r.cpp.o -o slic3r liblibslic3r.a libadmesh.a libBSpline.a libZip.a libclipper.a libexpat.a libpolypartition.a libpoly2tri.a -lboost_system -lboost_thread -lpthread -lboost_filesystem -lboost_chrono -lboost_date_time -lboost_atomic

that seems right, the libs archive are all in build dir and listed. I tested with boost 1.67 and 1.71 gcc version 8.3.0 (Debian 8.3.0-6) This is blocking for me.

Add this side note:

at the end of '$ perl Build.PL' stage I got a lot of failed test with 'Please report the failure to the author!'

Note: _ before # is to avoid formatting as title ` ... Successfully installed Slic3r-XS-0.01 1 distribution installed t/adaptive_slicing.t ........... ok
t/adaptive_width.t ............. ok
t/angles.t ..................... ok
t/arcs.t ....................... ok
t/avoid_crossing_perimeters.t .. ok
t/bridges.t .................... ok
t/clean_polylines.t ............ ok
t/clipper.t .................... ok
t/collinear.t .................. ok
t/combineinfill.t .............. ok
t/config.t ..................... ok
t/cooling.t .................... ok
t/customgcode.t ............... ok
t/fill.t ....................... ok
t/flow.t ....................... ok
t/gaps.t ....................... ok
t/gcode.t ...................... 1/27
# Failed test 'no Z moves below Z offset (no lift)' # at t/gcode.t line 70. # got: '130' # expected: '0' t/gcode.t ...................... 6/27 # Failed test 'no Z moves below Z offset (lift < zoffset)' # at t/gcode.t line 70. # got: '132' # expected: '0'

_# Failed test 'no Z moves below Z offset (lift > zoffset)' # at t/gcode.t line 70. # got: '130' # expected: '0'

_# Failed test 'completeobjects generates the correct number of Z moves' # at t/gcode.t line 123. # got: '4104' # expected: '100'

_# Failed test 'completeobjects generates the correct Z moves' # at t/gcode.t line 124. # Structures begin differing at: # $got->[50] = Does not exist # $expected->[50] = '0.400' t/gcode.t ...................... 23/27 # Failed test 'spiral vase is correctly disabled on layers with multiple loops' # at t/gcode.t line 216. # Looks like you failed 6 tests of 27. t/gcode.t ...................... Dubious, test returned 6 (wstat 1536, 0x600) Failed 6/27 subtests t/geometry.t ................... ok
t/layers.t ..................... 2/5 # Failed test 'wrong second layer height' # at t/layers.t line 38.

# Failed test 'wrong layer height' # at t/layers.t line 42.

# Failed test 'wrong second layer height' # at t/layers.t line 38.

# Failed test 'wrong layer height' # at t/layers.t line 42. # Looks like you planned 5 tests but ran 9. # Looks like you failed 4 tests of 9 run. t/layers.t ..................... Dubious, test returned 4 (wstat 1024, 0x400) Failed 2/5 subtests t/loops.t ...................... ok
t/multi.t ...................... ok
t/perimeters.t ................. ok
t/polyclip.t ................... ok
t/pressure.t ................... ok
t/print.t ...................... ok
t/retraction.t ................. ok
t/shells.t ..................... 11/24 # Failed test 'no gaps in Z (solid model with negative z-offset)' # at t/shells.t line 211. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270. Use of uninitialized value in subtraction (-) at t/shells.t line 270.

# Failed test 'null Z moves are layer changes' # at t/shells.t line 288.

# Failed test 'sum of partial Z increments equals to a full layer height' # at t/shells.t line 290. _# Looks like you failed 3 tests of 24. t/shells.t ..................... Dubious, test returned 3 (wstat 768, 0x300) Failed 3/24 subtests t/skirtbrim.t ................. 1/8 # Failed test 'brim is generated' _# at t/skirtbrim.t line 71. # got: '2' _# expected: '1' t/skirt_brim.t ................. 7/8 # Looks like you failed 1 test of 8. t/skirt_brim.t ................. Dubious, test returned 1 (wstat 256, 0x100) Failed 1/8 subtests t/slice.t ...................... skipped: temporarily disabled t/speed.t ...................... ok
t/support.t .................... ok
t/svg.t ........................ ok
t/thin.t ....................... ok
t/threads.t .................... ok
t/vibrationlimit.t ............. ok

Test Summary Report

t/gcode.t (Wstat: 1536 Tests: 27 Failed: 6) Failed tests: 5-7, 9-10, 23 Non-zero exit status: 6 t/layers.t (Wstat: 1024 Tests: 9 Failed: 6) Failed tests: 3-4, 6-9 Non-zero exit status: 4 Parse errors: Bad plan. You planned 5 tests but ran 9. t/shells.t (Wstat: 768 Tests: 24 Failed: 3) Failed tests: 14, 16, 18 Non-zero exit status: 3 t/skirt_brim.t (Wstat: 256 Tests: 8 Failed: 1) Failed test: 2 Non-zero exit status: 1 Files=35, Tests=594, 77 wallclock secs ( 0.16 usr 0.04 sys + 79.81 cusr 1.20 csys = 81.21 CPU) Result: FAIL Some tests failed. Please report the failure to the author! `

Zip-o-mat commented 3 years ago

I never touched the FillGyroid. Maybe this is a general Slic3r issue or it is already fixed there. Have you tried to build the standard slic3r?

efa commented 3 years ago

OK, solved using last 'README.md' instructions and your hint in: https://github.com/Zip-o-mat/Slic3r/issues/43

tempodat commented 1 year ago

Hey, would you mind sharing what you did to solve this? Ran into exact same problem with FillGyroid.

efa commented 1 year ago

I solved using real Debian and not Debian inside WSL/Win10, see https://github.com/Zip-o-mat/Slic3r/issues/43