Wie zum ausführen von SFML in CLion, Fehler undefined reference to?
Ich bin neu in C++ und versuchen zu lernen, game programming, wähle ich SFML und laufen auf CLion durch Jetbrain und mit Ubuntu-Rechner. Ich habe nach diesem tutorial SFML und Linux hier mein code :
#include <SFML/Graphics.hpp>
using namespace sf;
int main() {
RenderWindow window(sf::VideoMode(200, 200), "SFML Work!");
CircleShape shape(100.f);
shape.setFillColor(Color::Green);
while (window.isOpen()) {
Event event;
while (window.pollEvent(event)) {
if (event.type == Event::Closed) {
window.close();
}
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
Wenn ich auf CLion es Fehler
CMakeFiles/SFMLBasic.dir/main.cpp.o: In function `main':
undefined reference to `sf::String::String(char const*, std::locale const&)'
undefined reference to `sf::VideoMode::VideoMode(unsigned int, unsigned int, unsigned int)'
undefined reference to `sf::RenderWindow::RenderWindow(sf::VideoMode, sf::String const&, unsigned int, sf::ContextSettings const&)'
...
undefined reference to `sf::Shape::~Shape()'
Wie ich die config oder setup ausführen SFML in CLion, ich weiß nicht, CMAKE tun können? Ich habe nur ausgeführt, durch das terminal, Es funktionieren, wenn ich diesen Befehl ausführen.
g++ -c main.cpp
g++ main.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
./sfml-app
Wie in der config zu verwenden, alle Referenz-variable, ohne manuell jedes mal im Terminal? Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie diese Verbindung SFML-Bibliothek in Ihrer CMakeLists.txt.
Haben Sie einen Blick auf CMake target_link_libraries.
Und dieser link kann für Sie hilfreich sein zu wissen, wie man SFML-Bibliothek-Pfad in CMake.
Hier ist ein FindSFML.cmake module: https://github.com/LaurentGomila/SFML/blob/master/cmake/Modules/FindSFML.cmake
Nach Lesen @Stackia Vorschlag. Dies ist meine Lösung zu diesem tutorial beziehen Tutorial: Erstellen Sie Ihre SFML-Projekt mit CMake
Erstellen Sie eine
cmake_modules
Ordner und laden Sie diese Datei herunter FindSFML.cmake und kopieren Sie es.Bearbeiten
CMakeLists.txt
durch fügen Sie diese am Ende der Datei, klicken Sie auf Reload ändert.Ich habe es behoben mit folgenden Schritten:
Download
http://www.sfml-dev.org/download/sfml/2.3.2/64-Linux
Und entpacken Sie Sie im Ordner mit meinem Projekt:
Projekt mit dem "CPP_first"
main.cpp
enthält folgendeCMakeLists.txt
enthalten Folgendes:Pfad zu meinem Projekt
/home/user/ClionProjects/CPP_first/
PS: ich finde nicht, wie zu finden, SFML, wenn es installiert ist:
Ich hoffe, es wird jemand helfen
Wenn Sie die Installation von SFML:
finden Sie den Pfad in /usr/share/SFML/
Dies ist sehr viel einfacher, jetzt (siehe diese SFML-forum Diskussion).
Das ist, was ich getan habe, um mein sfml-Projekt läuft in clion:
C:\SFML\bin
zu meinem env-variablePath
Geändert
CMakeLists.txt
meiner clion-Projekt: