Ninja: ๋‹Œ์ž๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์†Œ๋น„ํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 05์›” 27์ผ  ยท  20์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ninja-build/ninja

๋‚ด ์‹œ์Šคํ…œ์—์„œ ์Šค์™€ํ•‘์˜ ์›์ธ์„ ์กฐ์‚ฌํ•ด ์™”์œผ๋ฉฐ ๋‹Œ์ž ์ฝ”๋“œ์—์„œ ์ด ์กฐ๊ฐ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

Ninja๋Š” Android ๋นŒ๋“œ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ ๋งŽ์€ Android ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ๋‚ด ์‹œ์Šคํ…œ์˜ ์‚ฌ์šฉ์„ฑ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

์ œ ํšŒ์‚ฌ PC์—๋Š” ์ตœ๋Œ€ 8๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋Š” 4์ฝ”์–ด CPU๊ฐ€ ์žˆ๊ณ , ๊ฐ€์ •์šฉ PC์—๋Š” ์ตœ๋Œ€ 16๊ฐœ(!!) ์Šค๋ ˆ๋“œ๊ฐ€ ์žˆ๋Š” 8์ฝ”์–ด CPU๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค 8GB์˜ RAM์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋งํ•  ํ•„์š”๋„ ์—†์ด, ๋‹Œ์ž ์ปดํŒŒ์ผ์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋น„์ถ•ํ•˜๊ณ  ๋งŽ์€ ์–‘์˜ ์Šค์™€ํ•‘์„ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋‹Œ์ž๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์ด CPU ์ˆ˜์™€ "์ผ์น˜ํ•˜์ง€" ์•Š๋Š” ๊ฒฝ์šฐ OS ๋ฆฌ์†Œ์Šค๋ฅผ ์‰ฝ๊ฒŒ ๊ณ ๊ฐˆ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” CPU+2 ์Šค๋ ˆ๋“œ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง„ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์€ ๊ฑฐ์˜ ์—†์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์€ ๊ณ ์ • ์ž์‚ฐ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๋„๋ก ์ตœ์ ํ™”๋œ ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค. Ninja๋Š” ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ(์†Œํ”„ํŠธ์›จ์–ด ์†Œ์Šค ์ฝ”๋“œ)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งค์šฐ ๋งŽ์Šต๋‹ˆ๋‹ค(์˜ˆ: C++). ์ด๊ฒƒ์€ ํ™•์‹คํžˆ ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ํ˜„์žฌ CPU ์ถ”์„ธ๊ฐ€ ๊ณ„์†๋œ๋‹ค๋ฉด ๊ณง 64๊ฐœ ์ด์ƒ์˜ ์ฝ”์–ด๊ฐ€ ์žˆ๋Š” ์†Œ๋น„์ž ๋Œ€์ƒ ์ปดํ“จํ„ฐ๋ฅผ ๋ณด๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ RAM ์ถ”์„ธ๊ฐ€ ๊ณ„์†๋˜๋ฉด ํ•ด๋‹น ์ปดํ“จํ„ฐ์˜ ๋Œ€๋ถ€๋ถ„์€ RAM์ด ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ๋™์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์ปดํŒŒ์ผ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋…ผ์˜๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ์ ํŠธ์—๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ์ปดํŒŒ์ผ ๊ณต๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  ๋‹Œ์ž๊ฐ€ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ์ ์ธ ์˜จ์ „์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ๋Œ€ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ œํ•œํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์„ค์น˜๋œ CPU ์ค‘ ์ผ๋ถ€์— ๊ฐ๊ฐ ์ตœ์†Œ 1Gb์˜ RAM์ด ์—†๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น CPU๋ฅผ ๊ธฐ๋ณธ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ์„ค์ •์— ํฌํ•จํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CPU๊ฐ€ 4๊ฐœ ๋ฏธ๋งŒ์ธ ๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ๊ณผ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ Xeon ๋นŒ๋“œ ์„œ๋ฒ„์— ๋Œ€ํ•ด ๋ณ‘๋ ฌ ์ž‘์—… ์ˆ˜๋ฅผ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋ฉด์„œ RAM ์–‘์ด ํ•˜์œ„ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๋ณด๋‹ค ํ•ฉ๋ฆฌ์ ์ธ ๊ธฐ๋ณธ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@jimon

๋‹น์‹ ์ด ๋•๊ณ  ์‹ถ์–ดํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์š”์ ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋‚ด ์ž…์žฅ:

1) make ๋Š” ์•ˆ์ „ํ•œ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋” ํฐ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2) ๋‹Œ์ž๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•˜๋ฉด ๋‚ด ์‹œ์Šคํ…œ์ด ์ค‘๋‹จ๋ ๊นŒ ํ•ญ์ƒ ๋‘๋ ค์›Œํ•ฉ๋‹ˆ๋‹ค(๋นŒ๋“œํ•˜๊ธฐ ์ „์— ๊ฐ ์ž„์˜์˜ AUR ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์–ด๋–ค ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค!). ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์„ ์ „์—ญ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ• ๋‹Œ์ž์˜.

๋ชจ๋“  20 ๋Œ“๊ธ€

ninja๋Š” ์‹คํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•ด ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜์˜ CPU ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ์ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฑด๋ฌผ์— ๊ฐ€์žฅ ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Š” ๋ช…๋ น ๊ฐ„์— ํฌ๊ฒŒ ๋‹ค๋ฅด๋ฉฐ(์˜ˆ: ๊ฐ„๋‹จํ•œ Python ์Šคํฌ๋ฆฝํŠธ ๋Œ€ ๋Œ€ํ˜• ๊ฐœ์ฒด ์—ฐ๊ฒฐ) ์ด๋Ÿฌํ•œ ๋ช…๋ น์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ณตํ†ต๋œ ๊ฐ€์ •์„ ๊ฐ–๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์†Œ๋ชจ ํ”„๋กœ์„ธ์Šค์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ œ์–ดํ•˜๋ ค๋ฉด ๋นŒ๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ํ’‹ํ”„๋ฆฐํŠธ๋ฅผ ์ž˜ ์•Œ๊ณ  ์žˆ์„ ๋•Œ ๋” ๋‚ฎ์€ -j๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ํ’€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
https://ninja-build.org/manual.html#ref_pool

ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜์˜ CPU ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ์ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฑด๋ฌผ์— ๊ฐ€์žฅ ์ ํ•ฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

RAM์˜ ์ด๋Ÿ‰๋„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ ์‹ค์ œ ์„ฑ๋Šฅ์— ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„ ํ”„๋กœ์„ธ์Šค์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ œ์–ดํ•˜๋ ค๋ฉด ๋” ๋‚ฎ์€ -j๋ฅผ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ํ’€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ €๋Š” Android NDK ๋นŒ๋“œ ์‹œ์Šคํ…œ์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ninja ๋ช…๋ น์— ๋ช…๋ น์ค„ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. โ€” Android ๋นŒ๋“œ ์‹œ์Šคํ…œ์€ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ MAKEFLAGS="-j4"๋ฅผ ์„ค์ •ํ–ˆ์ง€๋งŒ(๋Œ€๋ถ€๋ถ„์˜ make ๊ธฐ๋ฐ˜ ๋นŒ๋“œ ์‹œ์Šคํ…œ์—์„œ ์ด๋ฅผ ์ค€์ˆ˜ํ•จ) ๋‹Œ์ž๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

gradle์—์„œ cmake๋ฅผ ํ†ตํ•ด ์ง์ ‘ ninja์— ์ธ์ˆ˜๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด gradle์˜ cmake ํ†ตํ•ฉ ์—๋Š” arguments ํ•„๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์ด๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์„๊นŒ์š”?

@jimon

๋‹น์‹ ์ด ๋•๊ณ  ์‹ถ์–ดํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๊ทธ๊ฒŒ ์š”์ ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋‚ด ์ž…์žฅ:

1) make ๋Š” ์•ˆ์ „ํ•œ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ๋” ํฐ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2) ๋‹Œ์ž๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•˜๋ฉด ๋‚ด ์‹œ์Šคํ…œ์ด ์ค‘๋‹จ๋ ๊นŒ ํ•ญ์ƒ ๋‘๋ ค์›Œํ•ฉ๋‹ˆ๋‹ค(๋นŒ๋“œํ•˜๊ธฐ ์ „์— ๊ฐ ์ž„์˜์˜ AUR ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์–ด๋–ค ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค!). ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์„ ์ „์—ญ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ• ๋‹Œ์ž์˜.

@Alexander-- , (์Šค์™‘ ํŒŒ์ผ ๋˜๋Š” ๋‹ค๋ฅธ ์ˆ˜๋‹จ์„ ํ†ตํ•ด) ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ RAM์„ ํ• ๋‹นํ•˜๋Š” ๋‹จ์ผ ์‹คํ–‰ ํŒŒ์ผ(์ปดํŒŒ์ผ๋Ÿฌ ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ)์ด ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค. ํ•ด๋‹น ์•ฑ๊ณผ ๋น„์˜ฌ๋ผ๋งŒ ์‹คํ–‰ํ•˜๋Š” ๋นŒ๋“œ ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์ด ์‘๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์ •์‹ ์  ์˜ˆ๋ฅผ ํ†ตํ•ด ์ด ๋ฌธ์ œ๋Š” ์ ˆ๋Œ€์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Œ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ์‹คํ–‰ ํŒŒ์ผ์ด ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ ์ง„์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ์ƒํ•ด ๋ด…์‹œ๋‹ค. ๋‹Œ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ง€์‹์ด ์—†์œผ๋ฉฐ RAM์ด ์‹ค์ œ๋กœ ์‚ฌ๋ผ์ง„ ํ›„์—์•ผ ๋น„๋กœ์†Œ ๋ช…๋ฐฑํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํ”„๋กœ์ ํŠธ์˜ ๋ฒ”์œ„๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

make๊ฐ€ ๋” ์•ˆ์ „ํ•œ ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ–๋Š” ๊ฒƒ์— ๊ด€ํ•ด์„œ๋Š” - ๊ฐœ๋ฐœ์ž๊ฐ€ make์—์„œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ๊ท€์ฐฎ๊ฒŒ ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ฐœ๋ฐœ์ž ์‹œ๊ฐ„์ด ๋‚ญ๋น„๋˜๋Š”์ง€ ์ƒ์ƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋™๋ฃŒ๋“ค์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ์—์„œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์„ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช‡ ๋ถ„ ๋˜๋Š” ๋ช‡ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๋Š” ๊ฒƒ์„ ๋Š์ž„์—†์ด ๋ด…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋Œ€ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์œผ๋ฉฐ ๊ฑฐ์น ๊ฒŒ ๋“ค๋ฆฌ๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :) ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ€์žฅ ์ตœ์ ์˜ ์†”๋ฃจ์…˜์€ gradle ๋™์ž‘์„ ๋ฌด์‹œํ•˜๊ณ  ๊ณ„์† ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ/์ปดํ“จํ„ฐ์— ๋งค์šฐ ๊ณ ์œ ํ•˜๊ณ  ๋” ํฐ ๊ทœ๋ชจ๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค Android ๋นŒ๋“œ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? NDK๋กœ Android ์•ฑ์„ ๋นŒ๋“œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ „์ฒด ํ”Œ๋žซํผ(ROM)์„ ๋นŒ๋“œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

Ninja + Gradle + Jack = ์ง€์˜ฅ. (์ตœ์†Œ 16GB RAM์„ ์ฐจ์ง€ํ•จ)
์ •ํ™•ํžˆ ์–ด๋””์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฃผ์š” ๋ฌธ์ œ๋Š” jack-server๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Java ๋นŒ๋“œ์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋” ์ค‘์š”ํ•œ ๊ฒƒ์€ Ninja(from Soong)๊ฐ€ ๋ชจ๋“  ๋ ˆ๊ฑฐ์‹œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๋„ˆ๋ฌด ๋งŽ์€ ์ž‘์€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋„์ž…ํ•˜๋ฏ€๋กœ ๋นŒ๋“œ ์‹œ์Šคํ…œ์—์„œ ๊ธธ์„ ์žƒ๊ณ  ๋ฌธ์ œ์™€ ์†”๋ฃจ์…˜์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์˜ˆ์ „ ๋ฉ”์ดํฌ๊ฐ€ ๊ทธ๋ฆฌ์› ์–ด์š”. ์ด ์ง€์˜ฅ์—์„œ ์ €๋ฅผ ๊บผ๋‚ด์ฃผ์„ธ์š”.
์ด "No Jack ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. 'jack-admin start-server'๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”'"๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋Œ์•„์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@atetubou ๋ฅผ ๋‹ค์‹œ ํ‘œํ˜„ํ•˜์ž๋ฉด CPU์— 64๊ฐœ์˜ ์ฝ”์–ด๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ 64๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ€์ •์ด ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ์ด์œ ๋Š” ์ปดํŒŒ์ผ ์ž‘์—…์ด ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ๋ณด๋‹ค ์ปค ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Ninja์—๋Š” 'ํ’€' ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ด ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฌธ์„œ ์„น์…˜์„ ์ฝ์œผ๋ฉด ์ •ํ™•ํžˆ ์ด ๋ฌธ์ œ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://ninja-build.org/manual.html#ref_pool

๋‚˜๋Š” ๋‹น์‹ ์˜ ๋ฌธ์ œ์— ๊ณต๊ฐํ•˜์ง€๋งŒ Ninja๊ฐ€ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•  ์‰ฌ์šด ๋ฐฉ๋ฒ•์„ ๋ณด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด RAM ์–‘์„ "๊ณ ๋ คํ•ด์•ผ" ํ•œ๋‹ค๊ณ  ๋งํ•˜์ง€๋งŒ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๊ณต์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@av930 ์žญ์€ P์—์„œ ์‚ฌ๋ผ์ง€๊ณ  O ๋นŒ๋“œ์—์„œ ๋น„ํ™œ์„ฑํ™”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. O ๋นŒ๋“œ์—์„œ ์žญ ์‚ฌ์šฉ์„ ์ œ๊ฑฐํ–ˆ์œผ๋ฉฐ 12๊ธฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์žˆ๋Š” 8์ฝ”์–ด๋Š” 16๊ฐœ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ninja๊ฐ€ ๋นŒ๋“œ ์ค‘์— ์‚ฌ์šฉํ•˜๋Š” ์ธ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋‹Œ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ์žญ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/ninja-build/ninja/pull/1399

์„ธ์ƒ์—! ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ 16GRAM ๋จธ์‹ ์—์„œ AOSP ์ „์ฒด ๋นŒ๋“œ๋ฅผ ์™„๋ฃŒํ–ˆ์Šต๋‹ˆ๋‹ค.
์žญ ๋น„ํ™œ์„ฑํ™”: ANDROID_COMPILE_WITH_JACK := build/make/core/javac.mk์—์„œ false

์ด๊ฒƒ์€ ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
[ 99% 101694/101695] ์‹œ์Šคํ…œ fs ์ด๋ฏธ์ง€ ์„ค์น˜: out/target/product/taimen/system.img
out/target/product/taimen/system.img+ maxsize=2740531200 blocksize=135168 total=1076289888 reserve=27709440
[100% 101695/101695] ๋Œ€์ƒ vbmeta ์ด๋ฏธ์ง€: out/target/product/taimen/vbmeta.img

๋นŒ๋“œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(04:43:31(hh:mm:ss)).

n ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ๊ทธ๋ฃน์˜ ๊ฒฝ์šฐ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ƒํ™ฉ์—์„œ ์ตœ๋Œ€ n-1 ํ”„๋กœ์„ธ์Šค๋ฅผ ์ผ์‹œ ์ค‘๋‹จํ•ด๋„ ๋œ๋‹ค๊ณ  OS์— ์•Œ๋ ค์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด Linux์—์„œ cgroup์œผ๋กœ ๋‹ฌ์„ฑ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์‹ค์ œ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋‘ ๊ฐœ์˜ PR์ด ์žˆ์Šต๋‹ˆ๋‹ค: #1354 ๋ฐ #660. ํ›„์ž์˜ ๋…ผ์˜๋Š” ํฅ๋ฏธ๋กญ๋‹ค.

์ด๊ฒƒ์€ ๋Œ€๋ถ€๋ถ„ Android ๋นŒ๋“œ๊ฐ€ ํ’€์— ์žญ์„ ๋„ฃ์ง€ ์•Š์•„ ๋‹Œ์ž๋ฅผ ์ž˜๋ชป ์žก๊ณ  ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

@๋‹ˆ์ฝ”

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ ํŠน์ • Ninja ๋ฒ„์ „์„ ์ง€์ ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? AUR์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋นŒ๋“œํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ณธ์ ์œผ๋กœ Ninja๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๋ณ‘๋ ฌ ์ž‘์—…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์—ฌ์ „ํžˆ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Ninja๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ RAM ์–‘์— ๊ด€๊ณ„์—†์ด 16์ฝ”์–ด ๋จธ์‹ ์—์„œ 18์Šค๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Ninja๋Š” ์—ฌ๊ธฐ์„œ ์•„๋ฌด ๊ฒƒ๋„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งŽ์€ RAM(๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ)์ด ํ•„์š”ํ•œ ๊ฒƒ์ด ์ ์ ˆํ•œ ํฌ๊ธฐ์˜ ํ’€์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์ƒ์„ฑ๊ธฐ์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŽ์€ RAM(๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ)์ด ํ•„์š”ํ•œ ๊ฒƒ์ด ์ ์ ˆํ•œ ํฌ๊ธฐ์˜ ํ’€์— ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์ƒ์„ฑ๊ธฐ์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‹น์‹ ์˜ ๊ฐœ์ธ์ ์ธ ์˜๊ฒฌ์ž…๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด Ninja ๊ฐœ๋ฐœ์ž์˜ ๊ณต์‹ ์ž…์žฅ์ž…๋‹ˆ๊นŒ? ๋ฌธ์„œ ์—์„œ๋Š” ๊ทธ๋Ÿฌํ•œ ์ฑ…์ž„์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•œ ์ ์ด ์—†์œผ๋ฉฐ ์‹ค์ œ๋กœ Ninja ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์— ๊ฐ„์„ญํ•˜๋Š” ์ƒ์„ฑ๊ธฐ์— ๋Œ€ํ•ด์„œ๋„ ๋“ค์–ด๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

์–ด๋Š ์ชฝ์ด๋“ , ์ƒ์„ฑ๊ธฐ ์ž‘์„ฑ์ž๋Š” ์‹คํ–‰ํ•  ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์Šค ์ˆ˜๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋‚˜์€ ์œ„์น˜์— ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” buildserver ๊ด€๋ฆฌ์ž๊ฐ€ ๊ฐ€์žฅ ์ž˜ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋œ ์ƒ์„ฑ๊ธฐ์— ๊ด€๊ณ„์—†์ด ์ž‘๋™ํ•˜๋Š” Ninja ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์„ ๋‚ฎ์ถ”๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ์—†์œผ๋ฉฐ ์ ˆ๋Œ€ ์žˆ์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋™์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋นŒ๋“œ ๋„๊ตฌ(์˜ˆ: GNU Make)๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์„ ๋ก€๊ฐ€ ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์„œ์—์„œ๋Š” ๊ทธ๋Ÿฌํ•œ ์ฑ…์ž„์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•œ ์ ์ด ์—†์œผ๋ฉฐ ์‹ค์ œ๋กœ Ninja ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์— ๊ฐ„์„ญํ•˜๋Š” ์ƒ์„ฑ๊ธฐ์— ๋Œ€ํ•ด์„œ๋„ ๋“ค์–ด๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

RAM์— ๋Œ€ํ•ด ๋ช…์‹œ์ ์œผ๋กœ๋Š” ์•„๋‹ˆ์ง€๋งŒ:

"๋นŒ๋“œ ์‹œ ์‚ฌ์šฉ์ž ์ •์˜ ๋นŒ๋“œ. ์˜ต์…˜์€ ๋‹Œ์ž ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์†ํ•ฉ๋‹ˆ๋‹ค."

"Ninja์—๋Š” ๊ธฐ๋Šฅ์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋งŒ ์žˆ์œผ๋ฉด ๋˜๊ณ  ๋‹Œ์ž ์ž…๋ ฅ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค."

์‚ฌ์šฉ๋œ ์ƒ์„ฑ๊ธฐ์— ๊ด€๊ณ„์—†์ด ์ž‘๋™ํ•˜๋Š” Ninja ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์„ ๋‚ฎ์ถ”๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ์—†์œผ๋ฉฐ ์ ˆ๋Œ€ ์žˆ์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

-j ๋ฐ -l ํ”Œ๋ž˜๊ทธ์˜ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

AUR์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๋นŒ๋“œํ•  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ณธ์ ์œผ๋กœ Ninja๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๋ณ‘๋ ฌ ์ž‘์—…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์—ฌ์ „ํžˆ ๋ณด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

AUR์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ •ํ™•ํžˆ ๋ชจ๋ฅด์ง€๋งŒ ๋‹ค์Œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ /usr/local/bin ์— ๋„ฃ๊ณ  chmod +x /usr/local/bin/ninja ๋ฅผ ํ†ตํ•ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊นŒ์š”?

#!/usr/bin/env python3

import sys
import subprocess

try:
    subprocess.check_call(['/usr/bin/ninja', '-j1'] + sys.argv[1:])
except subprocess.CalledProcessError as e:
    exit(e.returncode)

-j1 ๋Š” ์ฒซ ๋ฒˆ์งธ ์‘๋‹ต์—์„œ์™€ ๊ฐ™์ด ์–ธ๊ธ‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋งŽ์€ ๋‚ด๋ถ€ external_projects๋ฅผ ํ™•๋ณดํ•œ ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ณตํ†ต makefile์ด ์‚ฌ์šฉํ•˜๋Š” ๋™์  ๋นŒ๋“œ ๋Œ€์‹  ์ •์ ์œผ๋กœ ๋นŒ๋“œํ•˜๋ฏ€๋กœ ๋นŒ๋“œ๋˜๋Š” ์ž์ฒด ํ”Œ๋ž˜๊ทธ์™€ ์†Œ์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ค๋Š˜๋‚  ์ด ๊ตฌํ˜• ๋…ธํŠธ๋ถ์—์„œ(์ด ์‹œ์Šคํ…œ์—์„œ ๋‹Œ์ž๋ฅผ ์‚ฌ์šฉํ•œ ์ ์ด ์—†์Œ) ์ฝ”์–ด i7(8 ์Šค๋ ˆ๋“œ)์ด ์žˆ๋Š” 4GB Windows 7 ์‹œ์Šคํ…œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ์ „์ฒด ์‹œ์Šคํ…œ์ด ๋””์Šคํฌ์—์„œ ๊ตํ™˜๋˜๋Š” ๋™์•ˆ 30๋ถ„ ๋™์•ˆ ํฌ๋กค๋ง๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๋ฐ”์ด์ž๋ ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

C:/general/build/mingw64-x64/sack/RelWithDebInfo_out/core/include/SACK/stdhdrs.h:259:24: fatal error: C:/general/build/mingw64-x64/sack/RelWithDebInfo_out/core/include/SACK/loadsock.h: Invalid argument
compilation terminated.

ํŒŒ์ผ์„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ์ž˜๋ชป๋œ ์ธ์ˆ˜์ธ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํŒŒ์ผ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค....
๊ทธ๋ž˜์„œ ์ „์ฒด ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์ง€๋งŒ ๋งŽ์€ ๋Œ€์ƒ์„ ์„ฑ๊ณต์ ์œผ๋กœ ๋นŒ๋“œํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค...
๋‚ด๊ฐ€ ์ง€๊ธˆ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„

ninja -j1 -v install 

๋‚ด๋ถ€ ๋‹Œ์ž ํ”„๋กœ์„ธ์Šค๋Š” ์—ฌ์ „ํžˆ -j8์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ๋Š” ๊ฐ๊ฐ -j8์„ ์‚ฌ์šฉํ•˜์—ฌ 8๊ฐœ์˜ ์™ธ๋ถ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ ์ฒซ ๋ฒˆ์งธ์—์„œ -j8์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— -j64๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค...

์ด ๊ฒฝ์šฐ ์ž‘์—… ์„œ๋ฒ„ ์ง€์›์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #1139

๋…๋ฆฝ์ ์ธ Ninja ๋นŒ๋“œ ์–ธ์–ด ์žฌ๊ตฌํ˜„ https://github.com/michaelforney/samurai ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜ SAMUFLAGS๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹Œ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ชจ๋“  ๊ณณ์—์„œ samu๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ /usr/bin/ninja๋กœ samu๋ฅผ ์„ค์น˜ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค(์ผ๋ถ€ Linux ๋ฐฐํฌํŒ์—๋Š” ์ด ๊ฒฝ์Ÿ ๊ตฌํ˜„์„ ๊ธฐ๋ณธ ๋˜๋Š” ๋‹Œ์ž ์ „์šฉ์œผ๋กœ ์„ค์น˜ํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค).

์ปค๋ฎค๋‹ˆํ‹ฐ/์‚ฌ๋ฌด๋ผ์ด๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹Œ์ž๋กœ ๋นŒ๋“œํ•˜๋Š” AUR ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰