Frage Aufbau des UCB-Logos 6 - Fehler in mathcalls.h


Nach Anhörung von Seymour Papertvergeht, ich wollte installieren Berkeley Logo (UCBLogo). Die Ubuntu-Repos haben nur v5.5.

Nach dem Herunterladen und Extrahieren des Archivs, Ausarbeiten seiner Abhängigkeiten (scheinbar libbsd-dev libx11-dev build-essential libwxgtk3.0-dev libtinfo-dev texinfo texlive) und läuft ./configure, Laufen make gibt diese Fehler:

gcc -g -O   -O0 -DUSE_OLD_TTY   -c -o coms.o coms.c
In file included from coms.c:30:0:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’
 __MATHCALL_VEC (exp,, (_Mdouble_ __x));
 ^
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’
 __MATHCALL_VEC (exp,, (_Mdouble_ __x));
 ^
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:100:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘extern’
 __MATHCALL_VEC (exp,, (_Mdouble_ __x));
 ^
<builtin>: recipe for target 'coms.o' failed
make: *** [coms.o] Error 1

Das Paket wird richtig auf einem Raspberry Pi (Raspbian, gcc 4.9.2, armv7l) erstellt, aber nicht auf diesem Rechner (Ubuntu 16.04, gcc 5.4.0, x86_64). Ich hätte keine Fehler erwartet Innerhalb System Include-Dateien. Der Header "mathcalls.h" sieht auf beiden Systemen sehr unterschiedlich aus, wobei die Fehlerzeilen ein anderes Makro aufrufen. Könnte das ein Problem mit gcc-4 bis gcc-5 sein?


3
2017-08-02 18:36


Ursprung


Als Update habe ich keine Lösung, aber jemand in der lokalen LUG hat sich den Code genau angeschaut und einige mögliche Abschwächungen entdeckt: [[GTALUG] Ubuntu 16.04 / gcc 5.4.0 - interne Fehler erzeugt System Include-Dateien] (gtalug.org/pipermail/talk/2016-August/003922.html "[GTALUG] Ubuntu 16.04 / gcc 5.4.0 - Fehler in System Include-Dateien erzeugt"). Im Wesentlichen wird der Code neu definiert exp für seine eigenen Zwecke, wenn es einem reservierten Wort am nächsten kommt, dass die C-Sprache haben kann. - scruss


Antworten:


Ich habe herausgefunden, wie man diesen Code kompiliert:

  • Im coms.c und in graphics.c Verschiebe die Linie include <math.h> vor der Linie include "logo.h"
  • Nach dem Rennen .configure öffne die Datei makefile und ändern Sie den Anruf in die Bibliothek -ltermcap mit -lncurses.

Dann kannst du rennen make und es sollte OK kompilieren.

Eine Sache, die ich nicht ausgearbeitet habe, ist, wie man mit dem wx-Toolkit kompiliert. Ich habe die Bibliotheken auf meinem System, aber beides .configure und make scheinen es zu ignorieren.


1
2018-03-22 04:15