2016-07-03 10 views
0

Ich bin Triing, um den Superoptimierer unter Windows zu kompilieren. (https://github.com/bonzini/superopt) Leider sind meine Kenntnisse über Marke sehr begrenzt. Ich habe versucht:Kompilieren Superopt auf Windows

make CPU=-D386 superopt 

Was mir den Fehler gibt:

cc  superopt.c -o superopt 
process_begin: CreateProcess(NULL, cc superopt.c -o superopt, ...) failed. 
make (e=2): The system cannot find the file specified. 
make: *** [superopt] Fehler 2 

Nach dem Einstellen der Compiler manuell mit gcc:

make CPU=-D386 superopt CC=gcc 

Ich erhalte die folgende Fehlermeldung:

gcc  superopt.c -o superopt 
In file included from superopt.c:27:0: 
superopt.h:104:2: error: #error You have to choose target CPU type (--with-arch). 
#error You have to choose target CPU type (--with-arch). 
^
In file included from superopt.h:130:0, 
       from superopt.c:27: 
longlong.h:1465:14: error: unknown type name 'UQItype' 
extern const UQItype __clz_tab[]; 
      ^
superopt.c:32:21: fatal error: version.h: No such file or directory 
compilation terminated. 
make: *** [superopt] Fehler 1 

Es scheint, dass es nicht richtig wählt ich 386. Alle Hinweise würden sehr geschätzt werden.

Antwort

1

That ist nicht der Quellcode von GNU superopt. Es ist der Quellcode von jemandes Projekt GNU superopt Patch, zuletzt aktualisiert 2008, und scheinbar aufgegeben eine harte Hutfläche.

This ist der Quellcode GNU superopt. Extrahieren Sie die Tarball und bauen, wie Sie versucht haben mit:

make CC=gcc CPU=-DI386 superopt 

Hinweis: I386, nicht 386.

Sie werden sehen, Warnungen wie:

warning: incompatible implicit declaration of built-in function 'foo' 

, weil der 20 Jahre alten C-Code nicht fleißig ist die Standard- Header enthalten, die die Standardfunktionen Prototyp, der es nennt, aber superopt erfolgreich aufzubauen.

+0

Danke Mike, dass meine zwei Schritte näher kamen. Ich musste stdlib.h einbeziehen. Aber ich bekomme immer noch viele Fehler. wie fehlende Zeichenfolge "Zeichen. Ich denke, es versteht nicht als nächste Zeile. –

+1

@DanyBittel Willkommen bei Stackoverflow. Ich bin mir nicht sicher, ob Sie Ihre Frage beantwortet beantworten, aber wenn Sie tun, ist die Art zu sagen, Danke ist zu [akzeptieren] (http://stackoverflow.com/help/accepted-answer) die Antwort, indem Sie das nebenstehende Häkchen ankreuzen. –