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 Visual Studio. Và bây giờ, mình sẽ hướng dẫn các bạn cài đặt SFML cho project Codeblocks.
Link bài viết trước:
Ep 1 - Phần 1
1. Chuẩn bị
Để cài SFML cho Codeblocks thì tất nhiên cần Codeblocks rồi 😀. Hiện tại các bạn cần tải Codeblocks 17.12 tích hợp sẵn GCC 5.1.0 TDM bởi vì bản pre-built SFML 2.5.1 cho Codeblocks hiện tại chỉ chạy được với compiler GCC 5.1.0 TDM.
2. Tải bải 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!
Tại đây các bạn chọn GCC 5.1.0 TDM (SJLJ) - Code::Blocks - 32-bit. Bản này là bản 32bit nha các bạn cho nên khi build ra chương trình thì có thể chạy trên cả Windows 32bit và 64bit.
3. Tìm hiểu các thư mục trong bản pre-built
Sau khi tải về, các bạn tiến hành giải nén sẽ được như hình. Ta chỉ quan tâm các thư mục bin, include, lib.
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 .a, mình cũng chả biết giải thích thế nào nhưng nó có tác dụng như file .lib bên Visual Studio 😀. Nếu không sẽ bị lỗi.
Thư mục bin là thư mục chứa các file .dll (dynamic linker library). Cần thiết cho chương trình khi build ở dạng dynamic linker.
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
Sau đó các bạn hãy add file Main.cpp vào để Codeblocks biết là project C++.
4.2. Cấu hình project
Đầ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).
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 (bên Release làm tương tự nhé do mình lười 😀)
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é (bên Release
tương tự, lí do như trên 😀)
Tiếp đến các bạn chọn Linker settings, sau đó chọn Add để thêm phần linker cho project (ở Debug và Release khác nhau nhé)
Ở Debug thì các bạn thêm như sau(gõ như thế là đã cài đủ 5 module của SFML):
sfml-graphics-d
sfml-audio-d
sfml-window-d
sfml-network-d
sfml-system-d
Ở Release thì các bạn gõ như sau(cài đủ 5 module của SFML):
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.
Như thế là đã thành công. Bây giờ các bạn hãy tìm file exe đã build.
Tuy nhiên lúc này, nếu các bạn mở lên thì sẽ bị lỗi thiếu các file dll.
Để khắc phục, các bạn vào thư mục bin của SFML để tìm các file dll bị thiếu. Ở đây là bị thiếu các file sfml-graphics-d-2.dll, sfml-window-d-2.dll và sfml-graphics-d-2.dll.
Tuy nhiên mọi chuyện không đơn giản như vậy, các bạn vẫn không chạy được vì thiếu các file dll của compiler (GCC 5.1.0 TDM SJLJ).
Để khác phục, các bạn hãy vào đường dẫn cài Codeblocks, chọn MinGW ---> bin để tìm các file dll bị thiếu. Nếu bạn cài Codeblocks mặc định thì nó ở đường dẫn sau: C:\Program Files (x86)\CodeBlocks\MinGW\bin
Đó là các cài đặt SFML cho project Codeblocks ở dạng dynamic linker. Ở dạng dynamic linker thì chương trình của các bạn sẽ phải cần các file dll để chạy. Nếu các bạn không thích sự phiền hà đó thì có thể cài đặt ở dạng static. Lúc này thì chương trình của các bạn sẽ không cần các file dll của SFML (vẫn cần file openal32.dll) nhưng chương trình của các bạn sẽ nặng hơn rất nhiều 😀.
5. Cài đặt SFML dạng static linker
Các bước thì vẫn giống như trên. Chỉ có thêm 1 bước và khác bước add các file trong thư mục lib.
Đầu tiên các bạn chọn Compiler setting ---> #defines. Sau đó các bạn gõ là SFML_STATIC vào (cả Debug và Release giống nhau)
Sau đó các bạn đến mục Linker settings. Các bạn add như sau nhé:
Debug:
sfml-graphics-s-d
sfml-window-s-d
sfml-audio-s-d
sfml-network-s-d
sfml-system-s-d
opengl32
freetype
winmm
gdi32
openal32
flac
vorbisenc
vorbisfile
vorbis
ogg
ws2_32
Release:
sfml-graphics-s
sfml-window-s
sfml-audio-s
sfml-network-s
sfml-system-s
opengl32
freetype
winmm
gdi32
openal32
flac
vorbisenc
vorbisfile
vorbis
ogg
ws2_32
Sau đó các bạn nhấn OK để hoàn tất, rồi run và tận hưởng 😀.
OK, bài viết đến đây là hết rồi. Mình sẽ viết về cài đặt SFML cài đặt cho Codeblocks cho Linux vào Phần 3.
Các bạn cứ bình luận để bày tỏ ý kiến về bài viết cho mình nhé!! Bye 😀.