I am having issues trying to get SFML to work using Cmake. I have no experience with cmake, but for the past 24 hours have been trying to follow a scatter of different tutorials for different systems and forum posts but no clear setup on how to get an already compiled version of SFML to work with Clion. What I do know is that I need to setup FindSFML.cmake file inside the project directory along with a Cmakelist.txt . I think the problem is somewhere in my Cmakelist.txt because the FindSFML.cmake is just cut and paste from GitHub. I already tried the github tutorial but it was a complete mess of other problems with trying to build SFML from source. Here is what I have done so far that I can remember.
(Using Windows 10 64bit, Clion, and cmake)
1.Download latest SFML version (64-bit Windows GCC MinGW)
2.Create a new Clion project with a directory looking like this:https://i.imgur.com/K0BwyHM.png
3.Have this basic main.cpp
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
4. With this Cmakelist.txt
cmake_minimum_required(VERSION 3.2)
project(SFMLdemo)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SFML_ROOT "C:/SFML-2.4.1")
set(SOURCE_FILES main.cpp)
add_executable(SFMLdemo ${SOURCE_FILES})
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake_modules")
find_package(SFML REQUIRED system window graphics network audio)
if (SFML_FOUND)
include_directories(${SFML_INCLUDE_DIR})
target_link_libraries(SFMLdemo ${SFML_LIBRARIES})
endif()
The compiler is giving me (what I believe) can't find SFML error of:
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:5: undefined reference to `_imp___ZN2sf6StringC1EPKcRKSt6locale'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:5: undefined reference to `_imp___ZN2sf9VideoModeC1Ejjj'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:5: undefined reference to `_imp___ZN2sf12RenderWindowC1ENS_9VideoModeERKNS_6StringEjRKNS_15ContextSettingsE'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:6: undefined reference to `_imp___ZN2sf11CircleShapeC1Efj'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:7: undefined reference to `_imp___ZN2sf5Color5GreenE'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:7: undefined reference to `_imp___ZN2sf5Shape12setFillColorERKNS_5ColorE'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:9: undefined reference to `_imp___ZNK2sf6Window6isOpenEv'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:12: undefined reference to `_imp___ZN2sf6Window9pollEventERNS_5EventE'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:15: undefined reference to `_imp___ZN2sf6Window5closeEv'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:18: undefined reference to `_imp___ZN2sf5ColorC1Ehhhh'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:18: undefined reference to `_imp___ZN2sf12RenderTarget5clearERKNS_5ColorE'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:19: undefined reference to `_imp___ZN2sf12RenderStates7DefaultE'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:19: undefined reference to `_imp___ZN2sf12RenderTarget4drawERKNS_8DrawableERKNS_12RenderStatesE'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:20: undefined reference to `_imp___ZN2sf6Window7displayEv'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:5: undefined reference to `_imp___ZN2sf12RenderWindowD1Ev'
C:/Users/Jakob/ClionProjects/SFMLdemo/main.cpp:5: undefined reference to `_imp___ZN2sf12RenderWindowD1Ev'
CMakeFiles\SFMLdemo.dir/objects.a(main.cpp.obj): In function `ZN2sf11CircleShapeD1Ev':
C:/SFML-2.4.1/include/SFML/Graphics/CircleShape.hpp:41: undefined reference to `_imp___ZTVN2sf11CircleShapeE'
C:/SFML-2.4.1/include/SFML/Graphics/CircleShape.hpp:41: undefined reference to `_imp___ZTVN2sf11CircleShapeE'
C:/SFML-2.4.1/include/SFML/Graphics/CircleShape.hpp:41: undefined reference to `_imp___ZN2sf5ShapeD2Ev'
My apologizes I'm sure you guys get a lot of people on this forum having trouble getting SFML started. I really didn't want to post this but I am very lost with Cmake and the only tutorial online I can find seemed vague about the cmakelist.txt part.
Thank you for your time,
-jakobnator