5

bekomme ich folgende Fehlermeldung nur dann, wenn ich GDB auf meinen Code mit Debug-FlagDebug seg Fehler in boost :: Mathematik :: lanczos mit libpcl_surface

Program received signal SIGSEGV, Segmentation fault. 
0x00007fffc79a7ff0 in boost::math::lanczos::lanczos_initializer<boost::math::lanczos::lanczos17m64, long double>::init::init()() 
from /usr/lib/libpcl_surface.so.1.7 

OS kompiliert debug mit: unbutu 14.04

I habe die neueste pcl-Bibliothek (1.7 Sprikelhof) und boost-Bibliothek (1.54)

Hinweis, es gibt keinen segfault, wenn außerhalb von gdb ausgeführt wird.

+0

Ich habe das gleiche Problem mit der GTSAM-Bibliothek. Ich bekomme jedes Mal den Segfault, egal ob ich in GDB laufe. Bitte posten Sie eine Antwort, wenn Sie eine finden. – rcv

+1

lief in das gleiche Problem, irgendwie funktioniert es, wenn ich C++ 11 deaktiviere. – sled

+0

Gleiches Problem hier mit sphärischen Bessel-Funktionen der ersten und zweiten Art (sph_besel) aus Boost 1.58.0: Segmentierungsfehler, wenn C++ 11 aktiviert ist. – domini1000

Antwort

6

Ich hatte ein ähnliches Problem beim Kompilieren mit -std=c++11 aber nur in Debug Modus: set(CMAKE_BUILD_TYPE Debug). In Release oder RelWithDebInfo Modus lief stattdessen alles wie erwartet.

Ich löste das Problem, den kompilierten Code zu optimieren (in Debug Modus) mit der -O1 Option. d.h. set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O1").

Ich weiß nicht, warum es funktioniert, aber es funktioniert für mich.