web-dev-qa-db-fra.com

Erreur lors de l'exécution de Netgen 5.3.1 sur Ubuntu 16.04

Quelqu'un peut-il aider à résoudre l'erreur d'exécution de Netgen 5.3.1. NETGEN est un générateur de maillage tétraédrique 3D automatique. Le message d'erreur est:

:/opt/netgen/bin$ ./netgen
NETGEN-5.3.1
Developed by Joachim Schoeberl at
2010-xxxx Vienna University of Technology
2006-2010 RWTH Aachen University
1996-2006 Johannes Kepler University Linz
optfile ./ng.opt does not exist - using default values
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  154 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  558
  Current serial number in output stream:  559

Des instructions sur l'installation de netgen-5.3.1 sont données ici .

Le logiciel semble avoir suivi ./configure, make et Sudo make install correctement.

J'ai suivi les instructions d'un page Web avec un message d'erreur similaire, mais cela n'a pas résolu le problème. C'est à dire. installation Togl-1.7.

La sortie finale de Sudo make install a donné:

libtool: relink: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o  .libs/nglib.o   -Wl,-rpath -Wl,/opt/netgen/lib -L/opt/netgen/lib -linterface -lgeom2d -lcsg -lstl -locc -lmesh -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. -lstdc++ -lm -lgomp -lpthread -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/5/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o  -O2 -fopenmp   -fopenmp -Wl,-soname -Wl,libnglib.so -o .libs/libnglib.so
libtool: install: /usr/bin/install -c .libs/libnglib.soT /opt/netgen/lib/libnglib.so
libtool: install: /usr/bin/install -c .libs/libnglib.lai /opt/netgen/lib/libnglib.la
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin" ldconfig -n /opt/netgen/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /opt/netgen/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
test -z "/opt/netgen/bin" || /bin/mkdir -p "/opt/netgen/bin"
  /bin/bash ../libtool   --mode=install /usr/bin/install -c ng_vol ng_stl '/opt/netgen/bin'
libtool: install: /usr/bin/install -c .libs/ng_vol /opt/netgen/bin/ng_vol
libtool: install: /usr/bin/install -c .libs/ng_stl /opt/netgen/bin/ng_stl
test -z "/opt/netgen/share/netgen" || /bin/mkdir -p "/opt/netgen/share/netgen"
 /usr/bin/install -c -m 644 cube.surf '/opt/netgen/share/netgen'
test -z "/opt/netgen/include" || /bin/mkdir -p "/opt/netgen/include"
 /usr/bin/install -c -m 644 nglib.h '/opt/netgen/include'
make[2]: Leaving directory '/home/brendan/Documents/hpfem-mpt/netgen-5.3.1/nglib'
make[1]: Leaving directory '/home/brendan/Documents/hpfem-mpt/netgen-5.3.1/nglib'
make[1]: Entering directory '/home/brendan/Documents/hpfem-mpt/netgen-5.3.1'
make[2]: Entering directory '/home/brendan/Documents/hpfem-mpt/netgen-5.3.1'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/brendan/Documents/hpfem-mpt/netgen-5.3.1'
make[1]: Leaving directory '/home/brendan/Documents/hpfem-mpt/netgen-5.3.1'
1
Brendan Darrer

Il semble que ce soit connu bug 1556445 .

Si vous utilisez la version 4.9.13 du référentiel officiel (installé avec Sudo apt-get install netgen) vous pouvez le "patcher" en exécutant manuellement la commande suivante:

Sudo sed -i "s/\-indirect\ true\ \}/\-indirect\ false\ \}/g" \
/usr/share/netgen/drawing.tcl

Cette méthode provient de Netgen SourceForge Maillist :

Joachim Schoeberl - 04/02/2016

éditez le fichier ng/drawing.tcl ligne 14:

if {[catch {togl .ndraw -width 400 -height 300 -rgba true -double true -depth true -privatecmap false -stereo false -indirect true }] } { ....

changement "-indirect true" à "-indirect false "

Joachim

Peut également fonctionner avec une version compilée manuellement (nécessite des modifications dans le chemin du fichier - /opt/netgen/bin/drawing.tcl).

1
N0rbert

J'ai trouvé que je devais suivre mon méthode précédente , en éditant le fichier /opt/netgen/bin/drawing.tcl à la ligne 14

en changeant -indirect true à -indirect false

& exécutant à /opt/netgen/bin en utilisant ./netgen était un succès!

J'ai trouvé que l'exécuter avec netgen &! a produit le même message d'erreur.

L'erreur était qu'à /opt/netgen/bin/drawing.tcl:

# use this one for Togl 2.0
# if {[catch {togl .ndraw -width 400 -height 300  -rgba true -double true -depth true -privatecmap false -stereo false -indirect false -create init  -display draw -reshape reshape  }] } {    

if {[catch {togl .ndraw -width 400 -height 300  -rgba true -double true -depth true -privatecmap false -stereo false -indirect true }] } {    puts "no OpenGL" 
} {

J'avais modifié le code commenté à la ligne 12 au lieu de la ligne 14, car les deux lignes se ressemblent.

1
Brendan Darrer