์ ๋ํฐ์ ์ธ๋ฆฌ์ผ ์์ง ๋๋ฌธ์ ๋น์ฃผ์ผ ์คํ๋์ค 2017๋ฅผ ์ฌ์ฉํ๊ณ , ๊ทธ๋์ Visual Rust ์ฌ์ฉํด๋ณด๋ ค๋ค๊ฐ VS Code๊ฐ ๋ ์ฐ๊ธฐ ํธํ๋ค๋ ์ด์ผ๊ธฐ๋ค์ด ์์ด์ VS Code๋ฅผ ์ฌ์ฉํด๋ณด๊ธฐ๋ก ํ๋ค.
VS Code ์ค์น - https://code.visualstudio.com/
Visual C++ Build Tool๋ ์ค์น - https://visualstudio.microsoft.com/ko/visual-cpp-build-tools/
VS Code๋ฅผ ์คํํ๊ณ , Extensions์์ C/C++๊ณผ Rust๋ฅผ ์ค์นํ๋ค.
์ค์น ๋, ์ด์ VS Code๋ก ๋ฌ์คํธ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ค๋ฉด,
Cargo๋ผ๋ ๋ฌ์คํธ ๋น๋ ์์คํ
์ ์ด์ฉํด์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.
๋ฌ์คํธ ํ๋ก์ ํธ ์์ฑํ๊ธฐ
๋ฌ์คํธ ํ๋ก์ ํธ ์์ฑํ๊ธฐ๋ ์ฑ ์ ๋ฐ๋ผ ํ๋ฉด ๋๋ค. - https://rinthel.github.io/rust-lang-book-ko/ch01-03-hello-cargo.html
์๋๋ ํฌ๋ก_์นด๊ณ ๋ผ๋ ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๋ช ๋ น์ด.
--bin ์ต์ ์ ์คํํ์ผ๋ก ๋ง๋ค๋ผ๋ ์๋ฏธ. ์ด ์ต์ ์ํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ค์ด ์ค๋ค๊ณ ํ๋ค.
cargo new hello_cargo --bin
๊ทธ๋ฌ๋ฉด ์๋์ฒ๋ผ ํด๋ 2๊ฐ์ ํ์ผ 3๊ฐ๊ฐ ๋ง๋ค์ด ์ง๋ค.
hello_cargo โ .gitignore โ Cargo.toml โ src โ main.rs
Cargo.toml ํ์ผ์ ์นด๊ณ ์ ํ๊ฒฝ ์ค์ ํ์ผ.
main.rs ํ์ผ์ ํฌ๋ก ์๋์ ๋๊ฐ์ ๋ฉ์ธ ์์ค ํ์ผ.
.gitignore ํ์ผ์ Git์ผ๋ก ํ๋ก์ ํธ ๊ด๋ฆฌํ ๋, ๊ด๋ฆฌํ ํ์๊ฐ ์๋ ํ์ผ๋ค์ ์ ์ํ๋ ํ์ผ.
VS Code๋ก hello_cargo ์ด๊ธฐ
hello_cargo ํด๋๋ฅผ ์ด๋ฉด ์๋์ฒ๋ผ ํ๋ก์ ํธ ํํ๋ก ๋ก๋ฉํด์ค๋ค.
F5 ๋๋ฌ์ ์คํํ๋ฉด, Rust ๊ด๋ จ๋ ์ค์น๊ฐ ๋ช๊ฐ ๋ ํ์ํ๋ค๊ณ ๋์จ๋ค.
Yes ๋๋ฌ์ rust-analysis๋ ๊ทธ์ธ ๊ธฐํ ์๋์ผ๋ก ์ค์น ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ launch.json ํ์ผ๊น์ง ์ด์ด์ค๋ค.
launch.json์ ์ด๋ป๊ฒ ์์ ํด์ผ๋๋๊ฑด๊ฐ?
{ "version": "0.2.0", "configurations": [ { "name": "(Windows) ์์", "type": "cppvsdbg", "request": "launch", "program": "${workspaceRoot}/target/debug/helloworld.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceRoot}", "environment": [], "externalConsole": false } ] }
ํ๋ก๊ทธ๋จ ์ด๋ฆ ์ ๋ ฅ(์: ...) ๋ถ๋ถ์ ํ์ผ๋ช ์ helloworld.exe๋ก ํ๋๋ฐ ํ์ผ์ ์ฐพ์ง ๋ชปํ๋ค๋ ์ค๋ฅ๊ฐ ๋์๋ค.
๊ทธ๋์ -> ํฐ๋ฏธ๋ -> ๋ฐ ๋น๋ ํ์คํฌ.
๋น๋๋ฅผ ํ๋ฉด ์ด๋ ๊ฒ target/debug/ ํด๋ ์์ hello_cargo๋ผ๋ ์คํํ์ผ์ด ์์ฑ๋๋ค.
์นด๊ณ ํจํค์ง์ ์ด๋ฆ์ผ๋ก ์คํํ์ผ์ด ๋ง๋ค์ด์ง๋ค. ใ
helloworld.exe๋ฅผ hello_cargo.exe๋ก ๋ณ๊ฒฝํ๊ณ ,
{ "version": "0.2.0", "configurations": [ { "name": "(Windows) ์์", "type": "cppvsdbg", "request": "launch", "program": "${workspaceRoot}/target/debug/hello_cargo.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceRoot}", "environment": [], "externalConsole": false } ] }
F5๋ฅผ ๋๋ฌ์ฃผ๋ฉด. ๋๋ฒ๊ทธ ์ฝ์์ ์์ฌ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
๊ทธ๋ด ๋, Run Without Debugging์ ํ๋ฉด,
์๋์ฒ๋ผ ๊ฒฐ๊ณผ๋ง ๋ณผ ์ ์๋ค.
CTRL+F5๋ฅผ ๊ธฐ์ตํ์!
๊ทธ๋ฆฌ๊ณ ์ ์ ์ธํ ์์ Allow Breakpoints Everywhere ์ค์ ํด์ค๋ค.
์น์ํํด๋ณด๋๊น ๋๋ถ๋ถ ์ ๊ฒ๋ ํ๋๋ผ๊ณ . ๊ฑ ๋ฐ๋ผํด์ผ์ง.
๋.