Trang này hướng dẫn cài những thứ cần có để build njin trên từng hệ điều hành. Làm xong là chạy được njin_pong, và tiếp tục với Bắt đầu.
| Thứ cần có | Để làm gì | Yêu cầu |
|---|---|---|
| Trình biên dịch C++20 | biên dịch engine và game | GCC 15.2 đã thử; bản cũ hơn chưa thử |
| CMake | cấu hình build | 3.28 trở lên |
| Ninja | chạy build (các preset dùng nó) | bản nào cũng được |
| Git | CMake tải raylib 6.0, EnTT v4.0.0 và Dear ImGui về lúc cấu hình lần đầu | bản nào cũng được |
| Kết nối mạng | cho lần cấu hình đầu tiên (không cần lại sau đó) |
Trình biên dịch, CMake và Ninja phải chạy được từ terminal: gõ tên lệnh ra phiên bản là đúng.
Trang này nói thật về những gì đã được thử:
| Nền tảng | Trình biên dịch | Trạng thái |
|---|---|---|
| Windows 10/11 | GCC (w64devkit) | Đã dùng để phát triển njin và chạy thử các bước dưới đây |
| Windows 10/11 | MSVC (Visual Studio) | Có trong CI (.github/workflows/build.yml), chưa thử tay |
| Linux (Ubuntu) | GCC | Đã thử trên Ubuntu 26.04 (WSL2): bản clone mới, các bước dưới đây, build đủ mọi target, Pong chạy |
| Linux (Debian) | GCC | Có trong CI, chưa thử tay |
| Linux (Fedora, Arch) | GCC | Chưa thử. Tên gói lấy theo hướng dẫn build raylib |
| macOS | Clang (Xcode) | Chưa thử |
Gặp lỗi trên nền tảng "chưa thử", đó có thể là lỗi thật của njin chứ không phải lỗi của bạn: hãy báo ở mục Issues của repo.
Đây là môi trường phát triển của njin.
CMake, Ninja và Git bằng winget (có sẵn trên Windows 11 và các bản Windows 10 gần đây):
Có thể bỏ qua CMake hoặc Ninja nếu thư mục bin của w64devkit bạn tải đã có sẵn. Kiểm tra ở bước 4.
Kiểm tra: trong terminal mới:
Cả bốn lệnh phải in ra phiên bản, và CMake từ 3.28 trở lên. Đã thử với GCC 15.2, CMake 4.0 và Ninja 1.13.
Trên Windows còn có hai script ở thư mục gốc repo: build.bat cấu hình và build Debug, run.bat build và chạy njin_sandbox. Xem Bắt đầu.
Trong thư mục repo:
Đây đúng là hai lệnh mà CI chạy. Không dùng cmake --preset, vì các preset chọn Ninja.
raylib vẽ bằng OpenGL trên X11 nên cần các thư viện phát triển của chúng.
Ubuntu và Debian (Ubuntu đã thử, Debian chưa):
Fedora (chưa thử):
Arch (chưa thử):
Kiểm tra bằng g++ --version, cmake --version (từ 3.28), ninja --version. Distro cũ có thể có CMake dưới 3.28: khi đó cài bản mới từ trang chủ CMake, hoặc pip install cmake.
Rồi build và chạy như dưới đây. Trên Linux file chạy không có đuôi .exe: build/bin/njin_pong.
Mã nguồn của njin có nhánh riêng cho POSIX (mạng của inspector, đọc thời gian file), nhưng những nhánh này chưa từng được biên dịch trên macOS.
Thư mục gốc repo, sau khi đã cài xong:
Lần cấu hình đầu tiên tải raylib, EnTT và Dear ImGui từ GitHub nên mất một lúc và cần mạng; các lần sau thì không. Rồi chạy:
| Hệ điều hành | Lệnh |
|---|---|
| Windows (GCC) | build\bin\njin_pong.exe |
| Windows (MSVC) | build\bin\Release\njin_pong.exe |
| Linux, macOS | build/bin/njin_pong |
Một cửa sổ Pong mở ra là môi trường đã đủ. Bỏ --target njin_pong để build mọi thứ (các game mẫu và njin_inspector). Preset release build vào build-release/ với tối ưu, xem Bắt đầu.
| Triệu chứng | Nguyên nhân thường gặp | Cách xử lý |
|---|---|---|
| cmake: command not found hoặc 'cmake' is not recognized | CMake chưa cài, hoặc terminal mở trước khi sửa Path | Cài CMake, mở terminal mới |
| CMake báo không tìm thấy Ninja | Ninja chưa cài hoặc không nằm trong Path | Cài Ninja, mở terminal mới, kiểm tra ninja --version |
| Cấu hình dừng ở "Cloning into 'raylib-src'" hoặc báo lỗi git | Thiếu Git, không có mạng, hoặc mạng chặn GitHub | Kiểm tra git --version và truy cập được github.com |
| CMake báo phiên bản cần 3.28 | CMake cũ | Cài CMake mới hơn |
| Linker không ghi được njin_*.exe (Windows) | Game vẫn đang chạy | Đóng game rồi build lại |
| Game báo không tìm thấy assets/... | Chạy từ sai thư mục | Game có assets chạy từ thư mục riêng build/bin/<tên game>/, xem Game mẫu và đóng gói |
| Linux: thiếu X11/Xlib.h, GL/gl.h | Thiếu thư viện phát triển | Cài các gói ở mục Linux |
| Đổi trình biên dịch mà CMake vẫn dùng cái cũ | CMake nhớ trình biên dịch trong build/ | Xóa thư mục build/ rồi cấu hình lại |