Erstelle Proxygen unter Ubuntu 16.04

8

Ich möchte die Proxygen c ++ - http-Bibliotheken von Facebook mit Ubuntu 16.04 aus github erstellen. Hier ist die Umgebung, die ich zusammen mit dem Befehl deps.sh eingerichtet habe, um Abhängigkeiten zu installieren:

%Vor%

Das hat mich am meisten durch den Aufbau seiner Torheitsabhängigkeit gebracht, aber ich bekomme einen unvollständigen Typfehler:

%Vor%

Hat jemand das versucht oder gelöst? Ich kenne die Codebasis noch nicht. Tia.

    
moodboom 06.08.2016, 16:33
quelle

1 Antwort

8

TL; DR Proxygen benötigt GNU-Erweiterungen; Verwenden Sie -std=gnu++11 oder -std=gnu++14

Warum müssen Sie beim Erstellen von proxygen und seinen Abhängigkeiten den C ++ - Standard überschreiben? Folly selbst gibt -std=gnu++1y an. Wenn Sie

entfernen %Vor%

und versuchen, es zu bauen, es wird fast, die einzige Änderung, die ich zur Torheit machen musste, ist fix membarrier .

Wenn Sie darauf bestehen, -std=c++14 zu verwenden, dann ist das Problem tatsächlich nicht in Unsinn, es ist in libstdc ++ - Handhabung von GNU-Erweiterungen, diese einfache Zeile:

%Vor%

Wird leicht mit -std=gnu++11 oder -std=gnu++1y kompiliert, wird aber mit -std=c++11 oder -std=c++14 fehlschlagen. Und es ist schwer zu sagen, ob es ein Fehler ist (weil der Compiler __int128 type bereitstellt (und Folly erkennt, dass in seinem configure Skript BTW) aber C ++ Bibliothek Probleme hat) oder ein Feature (weil __int128 ein ist Erweiterung an erster Stelle und man sollte eine GNU-Variante des Standards verwenden, um es richtig zu bekommen).

    
Roman Khimov 12.08.2016, 08:29
quelle