dasys-lab / cnc-msldriver

MSL specific robot drivers of Carpe Noctem Cassel
Other
2 stars 3 forks source link

msl_vision_3d does not compile with gcc 5.1 #1

Open StephanOpfer opened 9 years ago

StephanOpfer commented 9 years ago

Mit dem gcc 5.1 kompiliert keine Software mehr, die die msl_vision_3d library linkt.

Grund: In der VisionPlayer3D.cpp werden global Booleans (z.b. bool datalog) definiert, die zur Konfiguration dienen. Diese Booleans werden dann in der msl_vision_3d Library als z.B. "extern datalog;" definiert. Linkt man jetzt nur die Library und deklariert diese Booleans nicht in der eigenen Software, kommt es zu einem Linker-Fehler.

Dies ist so im msl_color_calibrator geschehen.

Quick-Fix: Ich hab die msl_vision_3d nicht mehr bauen lassen, so dass sie auch vom msl_color_calibrator nicht mehr gelinkt wird.

t10r commented 9 years ago

Hi Stephan,

wie geht's?

Wie kommt es das ihr gcc 5.1 verwendet? Ubuntu ist erst auf 4.9 nach meinem Wissen. Weißt du ob der Fehler an gcc liegt, sonst kann ich die Datei anpassen, auch wenn ich noch nicht genau wüsste wie.

Gruß, Tim

On 28.08.2015 23:07, Stephan Opfer wrote:

Mit dem gcc 5.1 kompiliert keine Software mehr, die die msl_vision_3d library linkt.

Grund: In der VisionPlayer3D.cpp werden global Booleans (z.b. bool datalog) definiert, die zur Konfiguration dienen. Diese Booleans werden dann in der msl_vision_3d Library als z.B. "extern datalog;" definiert. Linkt man jetzt nur die Library und deklariert diese Booleans nicht in der eigenen Software, kommt es zu einem Linker-Fehler.

Dies ist so im msl_color_calibrator geschehen.

Quick-Fix: Ich hab die msl_vision_3d nicht mehr bauen lassen, so dass sie auch vom msl_color_calibrator nicht mehr gelinkt wird.

— Reply to this email directly or view it on GitHub https://github.com/carpe-noctem-cassel/cnc-msldriver/issues/1.

StephanOpfer commented 9 years ago

Hi Tim,

wir verwenden teilweise gcc 5.1, da er einige tolle Code-Analyse-Werkzeuge integriert hat. (Speicherlöcher finden usw.). Valgrind hat einen Bug, der dafür sorgt, dass es nicht mit CGAL compiliert.

Zum richtig fixen, würde ich vorschlagen die Booleans nicht im globalen Namespace zu definieren, sondern als Klassenvariable des VisonPlayer3D. Dann musst du nur noch hinbekommen diese Parameter ohne das "extern-Keyword" verwenden zu können.

Viele Grüße, Stephan

t10r commented 8 years ago

Hi,

ich habe es gerade mal mit gcc 5.3 durch gespielt und es scheint soweit auch mit VisionPlayer3D zu laufen. Vielleicht kannst du es mal gegen prüfen.

Viele Grüße Tim

On 31.08.2015 08:39, Stephan Opfer wrote:

Hi Tim,

wir verwenden teilweise gcc 5.1, da er einige tolle Code-Analyse-Werkzeuge integriert hat. (Speicherlöcher finden usw.). Valgrind hat einen Bug, der dafür sorgt, dass es nicht mit CGAL compiliert.

Zum richtig fixen, würde ich vorschlagen die Booleans nicht im globalen Namespace zu definieren, sondern als Klassenvariable des VisonPlayer3D. Dann musst du nur noch hinbekommen diese Parameter ohne das "extern-Keyword" verwenden zu können.

Viele Grüße, Stephan

— Reply to this email directly or view it on GitHub https://github.com/carpe-noctem-cassel/cnc-msldriver/issues/1#issuecomment-136280407.