Opened 2 years ago
Closed 2 years ago
#66227 closed defect (fixed)
freecad @0.18.5_1: Undefined symbols: "boost::python::detail::init_module(char const*, void (*)())"
Reported by: | petrrr | Owned by: | mbrethen |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.8.0 |
Keywords: | Cc: | ||
Port: | freecad |
Description
The freecad port does not build for me. Seems to fail on linking library. I am on macOS Mojave, v 10.14.6.
[...] [ 32%] Linking CXX shared library ../../lib/libFreeCADApp.dylib cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_cad_freecad/freecad/work/build/src/App && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/FreeCADApp.dir/link.txt --verbose=ON /usr/bin/clang++ -Wall -Wextra -Wno-write-strings -pipe -I/opt/local/libexec/boost/1.71/include -Os -DNDEBUG -I/opt/local/libexec/boost/1.71/include -I/opt/local/include -stdlib=libc++ -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -std=c++11 -Wno-undefined-var-template -D_OCC64 -arch x86_64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -mmacosx-version-min=10.14 -dynamiclib -Wl,-headerpad_max_install_names -L/opt/local/libexec/boost/1.71/lib -L/opt/local/lib -Wl,-headerpad_max_install_names -Wl,-rpath,/opt/local/lib/libgcc -L/opt/local/lib/gcc12/gcc/x86_64-apple-darwin18/12.2.0/../../.. -Wl,-syslibroot,/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -Wl,-undefined,error -o ../../lib/libFreeCADApp.dylib -install_name /opt/local/libexec/freecad/lib/libFreeCADApp.dylib CMakeFiles/FreeCADApp.dir/Annotation.cpp.o CMakeFiles/FreeCADApp.dir/Document.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObject.cpp.o CMakeFiles/FreeCADApp.dir/Extension.cpp.o CMakeFiles/FreeCADApp.dir/ExtensionPyImp.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObjectExtension.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObjectExtensionPyImp.cpp.o CMakeFiles/FreeCADApp.dir/ExtensionContainer.cpp.o CMakeFiles/FreeCADApp.dir/ExtensionContainerPyImp.cpp.o CMakeFiles/FreeCADApp.dir/GroupExtension.cpp.o CMakeFiles/FreeCADApp.dir/GroupExtensionPyImp.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObjectFileIncluded.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObjectGroup.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObjectGroupPyImp.cpp.o CMakeFiles/FreeCADApp.dir/GeoFeaturePyImp.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObjectPyImp.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObserver.cpp.o CMakeFiles/FreeCADApp.dir/DocumentObserverPython.cpp.o CMakeFiles/FreeCADApp.dir/DocumentPyImp.cpp.o CMakeFiles/FreeCADApp.dir/Expression.cpp.o CMakeFiles/FreeCADApp.dir/FeaturePython.cpp.o CMakeFiles/FreeCADApp.dir/FeatureTest.cpp.o CMakeFiles/FreeCADApp.dir/GeoFeature.cpp.o CMakeFiles/FreeCADApp.dir/GeoFeatureGroupExtensionPyImp.cpp.o CMakeFiles/FreeCADApp.dir/GeoFeatureGroupExtension.cpp.o CMakeFiles/FreeCADApp.dir/OriginGroupExtensionPyImp.cpp.o CMakeFiles/FreeCADApp.dir/OriginGroupExtension.cpp.o CMakeFiles/FreeCADApp.dir/PartPyImp.cpp.o CMakeFiles/FreeCADApp.dir/Part.cpp.o CMakeFiles/FreeCADApp.dir/Origin.cpp.o CMakeFiles/FreeCADApp.dir/Path.cpp.o CMakeFiles/FreeCADApp.dir/InventorObject.cpp.o CMakeFiles/FreeCADApp.dir/MeasureDistance.cpp.o CMakeFiles/FreeCADApp.dir/Placement.cpp.o CMakeFiles/FreeCADApp.dir/OriginFeature.cpp.o CMakeFiles/FreeCADApp.dir/Range.cpp.o CMakeFiles/FreeCADApp.dir/Transactions.cpp.o CMakeFiles/FreeCADApp.dir/TransactionalObject.cpp.o CMakeFiles/FreeCADApp.dir/VRMLObject.cpp.o CMakeFiles/FreeCADApp.dir/MaterialObject.cpp.o CMakeFiles/FreeCADApp.dir/MergeDocuments.cpp.o CMakeFiles/FreeCADApp.dir/TextDocument.cpp.o CMakeFiles/FreeCADApp.dir/DynamicProperty.cpp.o CMakeFiles/FreeCADApp.dir/ObjectIdentifier.cpp.o CMakeFiles/FreeCADApp.dir/Property.cpp.o CMakeFiles/FreeCADApp.dir/PropertyContainer.cpp.o CMakeFiles/FreeCADApp.dir/PropertyContainerPyImp.cpp.o CMakeFiles/FreeCADApp.dir/PropertyFile.cpp.o CMakeFiles/FreeCADApp.dir/PropertyGeo.cpp.o CMakeFiles/FreeCADApp.dir/PropertyLinks.cpp.o CMakeFiles/FreeCADApp.dir/PropertyPythonObject.cpp.o CMakeFiles/FreeCADApp.dir/PropertyStandard.cpp.o CMakeFiles/FreeCADApp.dir/PropertyUnits.cpp.o CMakeFiles/FreeCADApp.dir/PropertyExpressionEngine.cpp.o CMakeFiles/FreeCADApp.dir/Application.cpp.o CMakeFiles/FreeCADApp.dir/ApplicationPy.cpp.o CMakeFiles/FreeCADApp.dir/Branding.cpp.o CMakeFiles/FreeCADApp.dir/ColorModel.cpp.o CMakeFiles/FreeCADApp.dir/ComplexGeoData.cpp.o CMakeFiles/FreeCADApp.dir/ComplexGeoDataPyImp.cpp.o CMakeFiles/FreeCADApp.dir/Enumeration.cpp.o CMakeFiles/FreeCADApp.dir/Material.cpp.o CMakeFiles/FreeCADApp.dir/MaterialPyImp.cpp.o CMakeFiles/FreeCADApp.dir/PreCompiled.cpp.o -Wl,-rpath,/opt/local/libexec/freecad/lib ../../lib/libFreeCADBase.dylib /opt/local/libexec/boost/1.71/lib/libboost_filesystem-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_program_options-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_regex-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_system-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_thread-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_chrono-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_date_time-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_atomic-mt.dylib /opt/local/libexec/qt4/lib/libQtCore.dylib /opt/local/libexec/qt4/lib/libQtXml.dylib /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python /opt/local/lib/libxerces-c.dylib /opt/local/libexec/boost/1.71/lib/libboost_filesystem-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_program_options-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_regex-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_system-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_thread-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_chrono-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_date_time-mt.dylib /opt/local/libexec/boost/1.71/lib/libboost_atomic-mt.dylib /opt/local/lib/libz.dylib /opt/local/libexec/qt4/lib/libQtCore.dylib make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_cad_freecad/freecad/work/build' [ 33%] Built target FreeCADApp make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_cad_freecad/freecad/work/build' make: *** [all] Error 2 make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_cad_freecad/freecad/work/build' Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_cad_freecad/freecad/work/build" && /usr/bin/make -j16 -w all VERBOSE=ON Exit code: 2 Error: Failed to build freecad: command execution failed
Attachments (1)
Change History (4)
Changed 2 years ago by petrrr
comment:1 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)
Summary: | freecad @0.18.5_1: build failure → freecad @0.18.5_1: Undefined symbols: "boost::python::detail::init_module(char const*, void (*)())" |
---|
The relevant error in the log is:
:info:build Undefined symbols for architecture x86_64: :info:build "boost::python::detail::init_module(char const*, void (*)())", referenced from: :info:build _initarea in PythonStuff.cpp.o :info:build ld: symbol(s) not found for architecture x86_64
I think the problem is freecad wants to use python27 but your boost171 port is installed with the +python310 variant. To work around this issue, reinstall the boost171 port with the +python27 variant. (This will break any other ports you have installed that rely on boost171 having been installed with its +python310 variant.)
Ideally, the freecad port should be changed to use python310 to match boost171's default python variant. Whether or not that's done, the freecad port should use the require_active_variants
procedure of the active_variants 1.1 portgroup to ensure that the boost171 port has been installed with whatever python variant is required.
Ideally, the freecad port should be updated to use a newer version of boost.
comment:2 Changed 2 years ago by petrrr
I tried to install boost171 +python27 and then rebuild freecad. But it does not build either.
But I guess the best would indeed be to update and move to Python 3 support.
comment:3 Changed 2 years ago by catap (Kirill A. Korinsky)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
sudo port -v install freecad