[8.0] Build error

Hello,
Since a few days, I cannot build KiCAD 8.0 on my Linux workstation. Of course, I have tried to reinitialize my sources tree. Build process aborts with:

[ 55%] Linking CXX shared module _eeschema.kiface
/usr/bin/ld : CMakeFiles/eeschema_kiface_objects.dir/sch_shape.cpp.o:(.bss._ZN18wxAnyValueTypeImplI6FILL_TE11sm_instanceE[_ZN18wxAnyValueTypeImplI6FILL_TE11sm_instanceE]+0x0) : définitions multiples de « wxAnyValueTypeImpl<FILL_T>::sm_instance »; CMakeFiles/eeschema_kiface_objects.dir/lib_shape.cpp.o:(.bss+0x0) : défini pour la première fois ici
collect2: error: ld returned 1 exit status
make[2]: *** [eeschema/CMakeFiles/eeschema_kiface.dir/build.make:804 : eeschema/_eeschema.kiface] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:3652 : eeschema/CMakeFiles/eeschema_kiface.dir/all] Erreur 2
make: *** [Makefile:166 : all] Erreur 2

I haven’t found issue like that in gitlab database. Does someone see the same issue ?

Best regards,

JB

Please give Operating System and Kicad version.

Oops, sorry. Linux Devuan testing (Debian like), amd64.

Not sure if any of the developers read French? I can’t tell if it is wx or the Kicad module.

Same message with LANG=C:

/usr/bin/ld: CMakeFiles/eeschema_kiface_objects.dir/sch_shape.cpp.o:(.bss._ZN18wxAnyValueTypeImplI6FILL_TE11sm_instanceE[_ZN18wxAnyValueTypeImplI6FILL_TE11sm_instanceE]+0x0): multiple definition of `wxAnyValueTypeImpl<FILL_T>::sm_instance'; CMakeFiles/eeschema_kiface_objects.dir/lib_shape.cpp.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [eeschema/CMakeFiles/eeschema_kiface.dir/build.make:804: eeschema/_eeschema.kiface] Error 1
make[1]: *** [CMakeFiles/Makefile2:3652: eeschema/CMakeFiles/eeschema_kiface.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
1 Like

You probably just need to do a clean build.

I have seen this kind of miscompilation for a long time. Before building Kicad, I always do a make clean && cmake .

Nah, the 8.0 branch is broken. Builds fail on Linux and Windows.

It’ll be fixed when someone has time to.