Go: x/tools/cmd/gorename: cgo ์‚ฌ์šฉ ํŒŒ์ผ์—์„œ gorename์ด ์‹คํŒจํ•จ

์— ๋งŒ๋“  2016๋…„ 05์›” 22์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: golang/go

๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์งˆ๋ฌธ์— ๋‹ตํ•˜์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”!

1. ์–ด๋–ค ๋ฒ„์ „์˜ Go๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ( go version )?

go version go1.6 darwin/amd64

2. ์–ด๋–ค ์šด์˜ ์ฒด์ œ์™€ ํ”„๋กœ์„ธ์„œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ( go env )?

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/ash/code/go"
GORACE=""
GOROOT="/Users/ash/.homebrew/Cellar/go/1.6/libexec"
GOTOOLDIR="/Users/ash/.homebrew/Cellar/go/1.6/libexec/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

3. ๋ฌด์—‡์„ ํ–ˆ์Šต๋‹ˆ๊นŒ?

์ด ์ž…๋ ฅ ํŒŒ์ผ demo.go ์ด ์ฃผ์–ด์ง€๋ฉด :

package main

// #include <unistd.h>
import "C"
import "fmt"

func main() {
    foo := 1
    C.close(2)
    fmt.Println(foo)
}

๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค: gorename -offset demo.go:#78 -to bar

4. ๋ฌด์—‡์„ ๋ณผ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๊นŒ?

์˜ค๋ฅ˜ ์—†์ด ์ด๋ฆ„ ๋ณ€๊ฒฝ: Renamed 2 occurrences in 1 file in 1 package.

5. ๋Œ€์‹  ๋ฌด์—‡์„ ๋ณด์•˜์Šต๋‹ˆ๊นŒ?

์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค: gorename: -offset "demo.go:#78": no identifier at this position

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

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

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

/cc @alandonovan

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์–ธ์ œ์ธ์ง€(์ €๋Š” 1.9.2๋กœ ์ง„ํ–‰ ์ค‘) ์˜ค๋ฅ˜๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "gorename: DO NOT EDIT ๋งˆ์ปค๊ฐ€ ํฌํ•จ๋œ ์ƒ์„ฑ๋œ ํŒŒ์ผ์˜ ์‹๋ณ„์ž ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค"

๊ทธ๋ฆฌ๊ณ  gorename์ด cgo ํŒŒ์ผ์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋‚ด๋Š” ๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ์กฐ๋งŒ๊ฐ„ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์—†์„ ๊ฒฝ์šฐ ์ตœ์†Œํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๊ด€๋ จ ๋ฌธ์ œ

dominikh picture dominikh  ยท  3์ฝ”๋ฉ˜ํŠธ

ianlancetaylor picture ianlancetaylor  ยท  3์ฝ”๋ฉ˜ํŠธ

natefinch picture natefinch  ยท  3์ฝ”๋ฉ˜ํŠธ

myitcv picture myitcv  ยท  3์ฝ”๋ฉ˜ํŠธ

OneOfOne picture OneOfOne  ยท  3์ฝ”๋ฉ˜ํŠธ