douqiao5543
douqiao5543
2014-10-02 10:23

Golang编译错误

  • IT行业问题
  • 计算机技术
  • it技术
  • 编程语言问答
  • 互联网问答
已采纳

Another newbie question which has got me pulling my hair out.

Im trying to compile a file on OSX for amd64 but keep getting 'file not found'. My GOPATH is set and the file exisits.

$GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o t1Login.linux t1Login.go
# github.com/golang-basic/go-curl
/usr/local/go/src/pkg/github.com/golang-basic/go-curl/c-callback.c:2 6c: No such file or directory: stdio.h

its looking for the below package file

import ("github.com/golang-basic/go-curl")

I've checked '/usr/local/go/src/pkg/github.com/golang-basic/go-curl/' and the file is present.

Im really lost guys any help at all would be very much appriciated.

UPDATE******

Hi guys thx for the help...its defently push progress on (INSTALLED xCODE ETC.), however on compile...

GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build -o t1Login.linux t1Login.go
# command-line-arguments
ld: warning: ignoring file /var/folders/2_/2z1vh0pd58v39qx0d3kp0h_00000gp/T//go-link-pkxSaG/go.o, file was built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) which is not the architecture being linked (x86_64): /var/folders/2_/2z1vh0pd58v39qx0d3kp0h_00000gp/T//go-link-pkxSaG/go.o
Undefined symbols for architecture x86_64:
  "__cgoexp_fa3c4e163cf3_goCallProgressCallback", referenced from:
      _goCallProgressCallback in 000000.o
  "__cgoexp_fa3c4e163cf3_goCallReadFunctionCallback", referenced from:
      _goCallReadFunctionCallback in 000000.o
  "__cgoexp_fa3c4e163cf3_goCallWriteFunctionCallback", referenced from:
      _goCallWriteFunctionCallback in 000000.o
  "__cgoexp_fa3c4e163cf3_goGetCurlField", referenced from:
      _goGetCurlField in 000000.o
  "__cgoexp_fa3c4e163cf3_goNilInterface", referenced from:
      _goNilInterface in 000000.o
  "_crosscall2", referenced from:
      _goGetCurlField in 000000.o
      _goNilInterface in 000000.o
      _goCallWriteFunctionCallback in 000000.o
      _goCallProgressCallback in 000000.o
      _goCallReadFunctionCallback in 000000.o
  "_main", referenced from:
     implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
/usr/local/go/pkg/tool/darwin_amd64/6l: running clang failed: unsuccessful exit status 0x100
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • douji9816 douji9816 7年前

    You need to use CGO_ENABLED=1 to use C

    Also

    $GOOS=linux should be $GOOS=darwin when using > MacOS 10.6

    点赞 评论 复制链接分享
  • dougang5088 dougang5088 7年前

    The file c-callback.c might be present in /usr/local/go/src/pkg/github.com/golang-basic/go-curl, but:

    • first the path is strange: /usr/local/go/src/pkg doesn't make sense.
      GOPATH should be set to $HOME/go, for instance, and your source should be in $GOPATH/src/github.com/golang-basic/go-curl.

    • second, the file missing is stdio.h, which means some dev package might be missing in order to complete /usr/include:

    点赞 评论 复制链接分享

为你推荐