Ich bekomme einen ld-Fehler beim Versuch, ein sfml-Programm auf Ubuntu 16.04 zu kompilieren. Dies ist offenbar ein bekanntes Problem, und es soll eine Abhilfe sein, aber ich verstehe nicht, was es ist ...ld Linker Fehler "cpu Modell verstecktes Symbol"
Der Fehler von ld ist
hidden symbol `__cpu_model' in /usr/lib/gcc/x86_64-linux-gnu/4.9/libgcc.a(cpuinfo.o) is referenced by DSO
ausgespuckt
Es gibt keinen relevanten Code dazu - wie ich es verstehe, wird dieser Fehler auf allen ubuntu 16.04-Systemen mit g ++ 5 erzeugt, wenn das zu verknüpfende Programm Objekte wie sf::Texture
und enthält. (Ich weiß nicht mehr Details als das.)
Ich habe auch versucht, mit g ++ 4.9 kompilieren, aber der gleiche Fehler tritt auf.
Meine Kompilierung Linie ist g++-4.9 --std=c++11 -Wall main.cpp -lsfml-graphics -lsfml-window -lsfml-system -o a.out
Hat jemand diesen Fehler erlebt und gelöst es erfolgreich?
Hinweis; Das korrekte Flag für die C++ 11-Unterstützung lautet '-std = C++ 11', nicht' -std = C++ 11'. Nicht relevant für Ihr Problem, dachte nur, ich würde es erwähnen .. –
@JesperJuhl Ist es? Beide scheinen zu arbeiten? Warum ist einer mehr richtig als der andere? Die Double-Dash-Version folgt der regulären Linux-Befehlssyntax. – user3728501
Ich gehe mit dem, was die Dokumentation sagt - versuchen Sie "man g ++" selbst und schauen Sie nach. –