XMake ์ฌ์ฉ๋ฒ #
๐ XMake: Rust์ Cargo ๊ฐ์ C ๋น๋ ์์คํ ์ฌ์ฉ๋ฒ #
XMake๋ C, C++ ํ๋ก์ ํธ์์ Cargo์ฒ๋ผ ๊ฐํธํ ๋น๋ + ์คํ + ํจํค์ง ๊ด๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Rust์์ cargo build
, cargo run
์ ์ฐ๋ฏ์ด, XMake์์๋ xmake
, xmake run
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
1๏ธโฃ XMake ์ค์น #
๐ Linux/macOS
curl -fsSL https://xmake.io/shget.text | bash
๐ Windows
PowerShell์์ ์คํ:
iwr -useb https://xmake.io/psget.text | iex
๐ ๋๋ ํจํค์ง ๋งค๋์ ์ฌ์ฉ
- macOS:
brew install xmake
- Linux:
sudo apt install xmake
(Ubuntu),sudo pacman -S xmake
(Arch) - Windows:
scoop install xmake
๋๋choco install xmake
์ค์น ํ์ธ:
xmake --version
2๏ธโฃ ์๋ก์ด ํ๋ก์ ํธ ์์ฑ #
๐ C ํ๋ก์ ํธ ์์ฑ
xmake create -l c myproject
cd myproject
๐ C++ ํ๋ก์ ํธ ์์ฑ
xmake create -l c++ myproject
cd myproject
3๏ธโฃ ํ๋ก์ ํธ ๊ตฌ์กฐ #
์์ฑ๋ ํ๋ก์ ํธ ํด๋๋ ์๋์ฒ๋ผ ๊ตฌ์ฑ๋ฉ๋๋ค.
myproject/
โโโ src/
โ โโโ main.c # ๋ฉ์ธ ์ฝ๋
โโโ xmake.lua # ๋น๋ ์ค์ ํ์ผ (Cargo.toml ๊ฐ์ ์ญํ )
๐ xmake.lua
ํ์ผ์ด Cargo.toml ๊ฐ์ ์ญํ ์ ํฉ๋๋ค.
4๏ธโฃ ๋น๋ & ์คํ #
๐ ํ๋ก์ ํธ ๋น๋
xmake
๐ ํ๋ก๊ทธ๋จ ์คํ
xmake run
๐ ๋๋ฒ๊ทธ ๋น๋
xmake f -m debug # Debug ๋ชจ๋ ์ค์
xmake # ๋ค์ ๋น๋
xmake run # ์คํ
๐ ๋ฆด๋ฆฌ์ฆ ๋น๋
xmake f -m release # Release ๋ชจ๋ ์ค์
xmake # ๋น๋
5๏ธโฃ ์ฝ๋ ์์ (xmake.lua ์ค์ ) #
๊ธฐ๋ณธ์ ์ผ๋ก xmake.lua
๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ๋ฉ๋๋ค.
add_rules("mode.debug", "mode.release")
target("myproject")
set_kind("binary")
add_files("src/*.c")
add_rules("mode.debug", "mode.release")
โ ๋๋ฒ๊ทธ & ๋ฆด๋ฆฌ์ฆ ๋ชจ๋ ์ง์target("myproject")
โ ์คํ ํ์ผ ์ด๋ฆset_kind("binary")
โ ์คํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ผ๋ก ๋น๋add_files("src/*.c")
โsrc/
ํด๋ ์์.c
ํ์ผ์ ํฌํจ
๐ C++ ํ๋ก์ ํธ๋ก ๋ณ๊ฒฝํ๋ ค๋ฉด?
target("myproject")
set_kind("binary")
set_languages("c++17") -- C++17 ์ค์
add_files("src/*.cpp")
6๏ธโฃ ํจํค์ง(๋ผ์ด๋ธ๋ฌ๋ฆฌ) ๊ด๋ฆฌ #
Rust์ Cargo์ฒ๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๐ ์์ : OpenSSL ์ถ๊ฐ
add_requires("openssl")
target("myproject")
set_kind("binary")
add_files("src/*.c")
add_packages("openssl")
๐ ํจํค์ง ์ค์น
xmake require --info openssl
๐ ํจํค์ง ๋ชฉ๋ก ๊ฒ์
xmake repo --search zlib
7๏ธโฃ ๋๋ฒ๊น #
๐ GDB/Lldb ๋๋ฒ๊น
xmake run -d
๐ VScode์ ์ฐ๋
xmake project -k vsxmake
๐ CMake ํ๋ก์ ํธ ๋ณํ
xmake project -k cmake
๐ฏ XMake ์ฌ์ฉ ์์ฝ #
๊ธฐ๋ฅ | ๋ช ๋ น์ด |
---|---|
ํ๋ก์ ํธ ์์ฑ | xmake create -l c myproject |
๋น๋ | xmake |
์คํ | xmake run |
๋๋ฒ๊ทธ ์คํ | xmake run -d |
๋ฆด๋ฆฌ์ฆ ๋น๋ | xmake f -m release && xmake |
CMake ํ๋ก์ ํธ๋ก ๋ณํ | xmake project -k cmake |
VSCode ํ๋ก์ ํธ๋ก ๋ณํ | xmake project -k vsxmake |
ํจํค์ง ์ค์น | xmake require --info <package> |
๐ ๊ฒฐ๋ก : Cargo ๊ฐ์ XMake! #
โ ๋จ์ํ ๋ช
๋ น์ด (xmake
, xmake run
)
โ C/C++ ํจํค์ง ๊ด๋ฆฌ (add_requires("openssl")
)
โ ๋๋ฒ๊น
(xmake run -d
) & ํฌ๋ก์ค ํ๋ซํผ ์ง์
๐ Rust์ Cargo์ฒ๋ผ ์ฝ๊ฒ C ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด XMake๊ฐ ์ต๊ณ ์ ์ ํ!
ํ์ํ ์ถ๊ฐ ์ค์ ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์! ๐