Qt Creator 7 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฆด๋ฆฌ์Šค

Qt ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋œ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ Qt Creator 7.0์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” C++์˜ ํด๋ž˜์‹ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ๊ณผ JavaScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค ์š”์†Œ์˜ ๊ตฌ์กฐ์™€ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ CSS์™€ ๊ฐ™์€ ๋ธ”๋ก์œผ๋กœ ์ง€์ •๋˜๋Š” QML ์–ธ์–ด ์‚ฌ์šฉ์„ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฒ„์ „์—์„œ:

  • "์ƒˆ ํŒŒ์ผ ๋˜๋Š” ํ”„๋กœ์ ํŠธ" ๋ฉ”๋‰ด ํ•ญ๋ชฉ์€ "์ƒˆ ํŒŒ์ผ"๊ณผ "์ƒˆ ํ”„๋กœ์ ํŠธ"๋ผ๋Š” ๋‘ ๊ฐœ์˜ ๋ณ„๋„ ๋Œ€ํ™” ์ƒ์ž๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
  • Qt ์˜จ๋ผ์ธ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” Qt์˜ ์ˆ˜์ • ๋ฒ„์ „์ด ์ œ๊ณต๋œ๋‹ค๋Š” ์ •๋ณด๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. "์˜ต์…˜ > ํ™˜๊ฒฝ > ์—…๋ฐ์ดํŠธ" ์„น์…˜์—์„œ ์—…๋ฐ์ดํŠธ ์•Œ๋ฆผ ํ‘œ์‹œ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • C++ ์–ธ์–ด์˜ ์ฝ”๋“œ ๋ชจ๋ธ์ด LLVM 14๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ LSP(Language Server Protocol)๋ฅผ ์ง€์›ํ•˜๋Š” Clangd ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "๋„๊ตฌ > ์˜ต์…˜ > C++ > Clangd" ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด ์ด์ „ ๋ฐฑ์—”๋“œ๋ฅผ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ์ธ๋ฑ์‹ฑ์„ ์œ„ํ•œ Clangd ์‚ฌ์šฉ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋ฐ ์ž…๋ ฅ ์ž๋™ ์™„์„ฑ์—๋Š” ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ClangFormat ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •์ด ์ผ๋ฐ˜ ์Šคํƒ€์ผ ์„ค์ • ์„น์…˜์œผ๋กœ ์ด๋™๋˜์—ˆ์œผ๋ฉฐ ๋ณ„๋„์˜ ํƒญ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์ตœ์‹  Qt ๋ถ„๊ธฐ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋„๋ก QML ํŒŒ์„œ ๊ตฌํ˜„์ด ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • CMake๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•˜๋Š” ํŽ˜์ด์ง€๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ๋””์ž์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋™์•ˆ CMake ์‹คํ–‰์„ ์ค‘์ง€ํ•˜๊ธฐ ์œ„ํ•ด "CMake ์ค‘์ง€" ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด๋ฏธ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ์—๋„ CMake๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์—ฌ ๊ตฌ์„ฑ์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋ฐ ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ CMake ๋ณ€์ˆ˜๋Š” ๋ถ„๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ ๋ณ€์ˆ˜๋Š” CMakeLists.txt.use ํŒŒ์ผ์—์„œ ์ •์˜๋˜์–ด ์ฒซ ๋ฒˆ์งธ ์„ค์ • ์ค‘์— ์‚ฌ์šฉ๋˜๋ฉฐ ๋‘ ๋ฒˆ์งธ ๊ฒฝ์šฐ์—๋Š” CMake file-api json์„ ํ†ตํ•ด ๋‚ด๋ณด๋‚ธ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. .cmake/api/v1/reply ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ์˜ ์ž๋™ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ํ–ฅ์ƒ๋˜๊ณ  ์‹œ์ž‘ ์‹œ ๋ถˆํ•„์š”ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ ํ˜ธ์ถœ ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค์–ด ์ผ๋ถ€ ํ™˜๊ฒฝ์—์„œ Qt Creator์˜ ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ ํ”„๋กœ์ ํŠธ ๋งˆ๋ฒ•์‚ฌ๋Š” C++17์ด C++ ํ‘œ์ค€์œผ๋กœ ์ •์˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • macOS ํ”Œ๋žซํผ์—์„œ๋Š” ์–ด๋‘์šด ํ…Œ๋งˆ์— ๋Œ€ํ•œ ์‹œ์Šคํ…œ ์„ค์ •์ด ๊ณ ๋ ค๋ฉ๋‹ˆ๋‹ค. macOS ๋นŒ๋“œ์— Docker์— ๋Œ€ํ•œ ์‹คํ—˜์  ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Android ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ ๊ธฐ๋ณธ NDK๋ฅผ ์„ ํƒํ•˜๋Š” ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ NDK ํ”Œ๋žซํผ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Linux ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ Wayland ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Qt์šฉ ๋ฐฑ์—”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ํ™˜๊ฒฝ ๋ณ€์ˆ˜ QT_QPA_PLATFORM=wayland๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€