Geant4 Open Inventor install on macOS 10.14.5

Hi all,
I’m new to using this forum so please forgive me if there are any formatting or question related issues. I am currently a student trying to learn how to use simulations for some research projects. I have successfully installed Geant4 but I’m unable to use Open Inventor because my install of SoXt is not working. I am getting SoXt from SoXt.

When I attempt to use CMake or autotools, I always come across undefined architecture errors.

When I execute “./configure && sudo make” in the source directory:

Undefined symbols for architecture x86_64:
“_glXChooseVisual”, referenced from:
SoXtGLWidgetP::createVisual() in SoXtGLWidget.o
Initialize(_SoXtGLAreaRec*, _SoXtGLAreaRec*, Arg*, unsigned int*) in SoXtGLArea.o
“_glXCreateContext”, referenced from:
SoXtGLWidgetP::buildContext() in SoXtGLWidget.o
“_glXDestroyContext”, referenced from:
SoXtGLWidget::~SoXtGLWidget() in SoXtGLWidget.o
SoXtGLWidgetP::cleanupContext() in SoXtGLWidget.o
SoXtGLWidgetP::exposeCB(_WidgetRec*, void*, void*) in SoXtGLWidget.o
“_glXGetCurrentContext”, referenced from:
SoXtGLWidgetP::isDirectRendering() in SoXtGLWidget.o
“_glXIsDirect”, referenced from:
SoXtGLWidgetP::isDirectRendering() in SoXtGLWidget.o
“_glXMakeCurrent”, referenced from:
SoXtGLWidget::initGraphic() in SoXtGLWidget.o
SoXtGLWidget::glLockNormal() in SoXtGLWidget.o
SoXtGLWidgetP::isDirectRendering() in SoXtGLWidget.o
_SoXtGLAreaMakeCurrent in SoXtGLArea.o
“_glXSwapBuffers”, referenced from:
SoXtGLWidget::glSwapBuffers() in SoXtGLWidget.o
_SoXtGLAreaSwapBuffers in SoXtGLArea.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[8]: *** [libSoXt.la] Error 1
make[7]: *** [all-recursive] Error 1
make[6]: *** [all] Error 2
make[5]: *** [all-recursive] Error 1
make[4]: *** [all] Error 2
make[3]: *** [all-recursive] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Executing cmake and then make from build directory:

[ 2%] Linking CXX shared library …/lib/SoXt.framework/SoXt
Undefined symbols for architecture x86_64:
“SoSFTime::setValue(SbTime)”, referenced from:
SoGuiViewpointWrapper::sendBindEvents(SoNode*, int) in ViewpointWrapper.cpp.o
“SbPList::find(void*) const”, referenced from:
SoXtFullViewer::removeAppPushButton(_WidgetRec*) in FullViewer.cpp.o
SoXtFullViewer::findAppPushButton(_WidgetRec*) const in FullViewer.cpp.o
XtNativePopupMenu::removeMenuItem(int) in XtNativePopupMenu.cpp.o
SoXtRenderArea::registerDevice(SoXtDevice*) in SoXtRenderArea.cpp.o
SoXtRenderArea::~SoXtRenderArea() in SoXtRenderArea.cpp.o
SoXtRenderArea::unregisterDevice(SoXtDevice*) in SoXtRenderArea.cpp.o
SoGuiViewpointWrapper::set_bind_cb(void*, SoSensor*) in ViewpointWrapper.cpp.o

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/SoXt.framework/Versions/A/SoXt] Error 1
make[1]: *** [src/CMakeFiles/SoXt.dir/all] Error 2
make: *** [all] Error 2

I realize that this forum deals with Geant4 specific issues and I have already posted for assistance on Coin3D’s help page, but I haven’t had any suggestions as to how to fix my problem. Any help would be appreciated and thank you in advance!

Cheers,
Jason

I’ve just moved this to the category covering visualisation as there are likely to be more experts on Inventor here!

Hi Jason,
Unfortunately I don’t have access to a MacOS system to check your problem, but I can comment that other MacOS users have reported difficulties with Coin/SoXt and the relevant libraries (Xt, Xm, …) needed by it. Before you attempted to build SoXt 1.3.0, did you first build and install Coin 3.1.3? Did you build it from source or use the Mac installer? If you built it from source please post the config.log and also the one from the SoXt configure. Have you installed the additional libraries needed such as GL, GLU, Xm (Motif), Xt, and so on? Run ./configure and make on separate lines to see which one emits the error messages. Try make -k which may give additonal useful information.

In general it is much better to install Coin and SoXt libraries using a package manager rather than building them from source. On Linux the versions known to work with Geant4 OIX and OIXE viewers are Coin 2.4.6 and SoXt 1.2.2, but I don’t know if these are packaged for MacOS. On the Mac there are supported applications using Coin + SoQt + Qt + the native OpenGL, thus having no dependence on any X libraries. There is a new Qt-based Geant4 Open Inventor viewer coming that will use this approach.

Fred

Hi Fred,

Thanks for your reply! I did build Coin before installing SoXt and I used both a CMake and autotools implementation. I have attached the coin config log and SoXt config log as requested (hopefully these are the correct files).

With regards to the additional libraries, I have installed Xm (Motif) and Xt (which I’m assuming is the X11 library). It is my understanding that the MacOS system comes with OpenGL installed which provides access to GL and GLU.

I was able to configure and build the most current version of SoQt with autotools with my version of Coin, but as there is no current version of open inventor with SoQt and Coin I’m not sure how useful the software will be for my purposes.

I will try to follow your suggestions and see if anything pointing shows. Thanks again!

Cheers,
Jason

Coin Config Log:
https://drive.google.com/file/d/1cmpUJF8-udcOc4aR72HOY8htswSRPYXw/view?usp=sharing

SoXt config Log:
https://drive.google.com/file/d/1kpMQHEwTFB7_iFivaPlvx4YFR2tfHRyM/view?usp=sharing

Hi all,

The installation problem has been resolved by a member of the Coin3D team. A pull request was made for some build files in SoXt.

Thank you all for your help and support!

Cheers,
Jason