OK, xin chào mọi người, ở bài viết trước mình đã hướng dẫn các bạn cài SFML cho project Codeblocks trên Windows. Và bây giờ, mình sẽ hướng dẫn các bạn cài đặt SFML cho project Codeblocks trên Linux.
Link bài viết trước:
Ep1 - Phần 2
1.Chuẩn bị
Để mà dùng cài được SFML cho project Codeblocks trên Linux thì bạn cần một máy chạy Linux và Codeblocks.
Trong bài viết này mình sẽ dùng Ubuntu 18.04.
2. Tải bản pre-built
Các bạn vào trang chủ của SFML để tải nhé!
Link:
SFML Homepage
Các bạn chọn Download nhé!
Tiếp đến các bạn chọn SFML 2.5.1!
Tiếp theo các bạn chọn bản cho Linux. Bản này là dành cho máy Linux 64bit cho nên máy của các bạn bắt buộc phải là máy Linux 64bit.
3. Tìm hiểu các thư mục trong bản pre-built
Trong bản pre-built cho Linux thì chỉ có 3 thư mục là include, lib và share. Chúng ta chỉ quan tâm đến thư mục include và lib. Còn thư mục share thì trong đó có các chương trình được build sẵn để làm demo của mấy ông dev bên SFML.
Thư mục include là thư mục chứa các file header của SFML. Khi code các bạn phải include chúng thì mới có thể dùng được SFML.
Thư mục lib là thư mục chứa các file .so. Đây là file dynamic linker của Linux, các file này sẽ cần thiết khi ta chạy chương trình dùng SFML.
4. Cài SFML vào project
4.1 Tạo project trong Codeblocks
Ở đây mình tạo empty project đặt tên là SFML-Tutorial.
Tiếp theo các bạn hãy add file Main.cpp và project để Codeblocks biết là project C++.
4.2 Cấu hình project
Chú ý: khi cấu hình project thì Debug và Releae là giống nhau ở tất cả các bước.
Đầu tiên các bạn hãy mở Project Build options.
Tại đây ta có 2 tùy chọn cho Debug và Release (để cấu hình cho Debug hay Release thì chỉ cần chọn vào là OK, ảnh mình lấy bên Windows, bên Linux nó cũng thế).
Các bạn chọn Search directories ---> Compiler ---> Add. Tại đây các bạn add đường dẫn của thư mục include SFML.
Tiếp theo các bạn chọn Search directories ---> Linker ---> Add. Tại đây các bạn add đường dẫn của thư mục lib SFML nhé.
Tiếp đến các bạn chọn Linker settings, sau đó chọn Add để thêm phần linker cho project. Các bạn thêm như bên dưới:
sfml-graphics
sfml-audio
sfml-window
sfml-network
sfml-system
Thế là hoàn tất, các bạn click OK để hoàn tất các bước.
4.3. Test thử
Thế là OK. Bây giờ các bạn copy đoạn code bên dưới để test.
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(900, 500), "SFML-Tutorial", sf::Style::Close);
window.setFramerateLimit(60);
sf::RectangleShape rectang(sf::Vector2f(400, 220));
rectang.setPosition(250, 140);
rectang.setFillColor(sf::Color::Yellow);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::EventType::Closed)
{
window.close();
}
}
window.clear();
window.draw(rectang);
window.display();
}
return 0;
}
Sau đó các bạn hãy build.
Tiếp đến các bạn hãy tìm đến thư mục bin/Debug/ hoặc bin/Release trong thư mục project của các bạn để tìm file đã build. Vì mình đặt tên project là SFML-Tutorial nên tên file khi build ra là SFML-Tutorial.
Sau đó, các bạn hãy mở terminal tại thư mục đó và gõ ./Tên file để chạy chương trình. Do tên chương trình của mình là SFML-Tutorial nên mình gõ là ./SFML-Tutorial
Tuy nhiên khi chạy thì sẽ bị lỗi vì bị thiếu các file dynamic linker trong thư mục lib.
Để khắc phục, các bạn hãy vào thư mục lib của SFML và xóa đi thư mục cmake nếu có.
Tiếp theo các bạn mở terminal tại thư mục đó và gõ: sudo cp * /usr/lib và nhấn enter để chạy.
Thế là đã fix xong. Các bạn hãy chạy lại chương trình một lần nữa. Lần này sẽ thành công.
OK, bài viết đến đây là hết rồi. Mình sẽ viết tiếp các dùng SFML vào các bài sau nhé!
Các bạn cứ bình luận để bày tỏ ý kiến về bài viết cho mình nhé!! Bye !!!