Cài đặt SFML - Ep1 - Phần 2
C++
38
game
11
sfml
6
game_programming
6
White

Harding Adonis viết ngày 31/03/2019

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: Ep1 - Phần 1

1. Chuẩn bị

Để cài SFML cho Codeblocks thì tất nhiên cần Codeblocks rồi :smile:. 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.
alt text

2. Tải bản pre-built

  • Các bạn vào trang chủ của SFML để tải nhé!
  • Link: SFML Homepage alt text
  • Các bạn chọn Download nhé! alt text
  • Tiếp đến các bạn chọn SFML 2.5.1! alt text
  • 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. alt text

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. alt text
  • 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. alt text
  • 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 :laughing: nhưng nó có tác dụng như file .lib bên Visual Studio :laughing:. Nếu không sẽ bị lỗi alt text
  • 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. alt text

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 alt text
  • Sau đó các bạn hãy add file Main.cpp vào để Codeblocks biết là project C++. alt text

4.2 Cấu hình project

  • Đầu tiên các bạn hãy mở Project Build options alt text
  • 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). alt text
  • 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 :laughing:) alt text
  • 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 :laughing:) alt text
  • 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

alt text

  • Ở 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

alt text

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. alt text
  • 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. alt text
  • Để 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) alt text
  • Để 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 alt text

Đó 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 :laughing:.

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) alt text
  • 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

alt text

  • 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

alt text

Sau đó các bạn nhấn OK để hoàn tất, rồi run và tận hưởng :laughing:.

alt text

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 :smile:

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Harding Adonis

6 bài viết.
16 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
2 0
Bài viết này mình chỉ nói sơ lược về SFML và vài project mình đã làm với nó thôi nhé. Các bài viết sau mình sẽ chỉ rõ cách cài đặt cũng như dùng SF...
Harding Adonis viết 7 tháng trước
2 0
White
2 0
OK xin chào mọi người, ở bài viết trước mình đã giới thiệu sơ lược về SFML rồi. Và bây giờ mình sẽ hướng dẫn các bạn cài đặt SFML vào project. Lin...
Harding Adonis viết 7 tháng trước
2 0
White
1 0
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 ...
Harding Adonis viết 7 tháng trước
1 0
Bài viết liên quan
White
2 0
OK xin chào mọi người, ở bài viết trước mình đã giới thiệu sơ lược về SFML rồi. Và bây giờ mình sẽ hướng dẫn các bạn cài đặt SFML vào project. Lin...
Harding Adonis viết 7 tháng trước
2 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
6 bài viết.
16 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!