при при включении import "net/http" появл. ошибка при сборке "... runtime/cgo/_obj/_cgo_defun.c:6 6c: No such file or directory"

106 views
Skip to first unread message

Ven Vol

unread,
Aug 16, 2015, 3:55:29 PM8/16/15
to Golang Russian
нижеприведенный main.go(тестилка основных фич языка для начинающих) билдится и исполняется нормально пока не раскомментить "net/http"  (даже без 2х посл.функций для проверки этого пакета)
как только раскомментил - при билдинге появл. ошибка :
------   Building Go project: helgo  -------
>> Running: /home/../.gvm/gos/go1.4.2/bin/go install -v -gcflags -N -l ./...
   with GOPATH: /home/../workspace/Go/helgo:/home/vn/workspace/Go
runtime/cgo
# runtime/cgo
/tmp/go-build169293468/runtime/cgo/_obj/_cgo_defun.c:6 6c: No such file or directory: runtime.h
   ^^^ Terminated, exit code: 2 ^^^

стоит закомментить "net/http" -снова нормально билдится и выполняется

интересно что непосредственно напротив net/http , или 2х посл.функций на эту тему(если их разкомментить) ошибок не выводит.
main.go

Daniel Podolsky

unread,
Aug 16, 2015, 4:09:33 PM8/16/15
to gola...@googlegroups.com
Есть подозрение, что что-то не так с вашей исталляцией

http://play.golang.org/p/TZBQnBvQu6 работает нормально
> --
> Вы получили это сообщение, поскольку подписаны на группу "Golang Russian".
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения,
> отправьте письмо на электронный адрес
> golang-ru+...@googlegroups.com.
> Чтобы настроить другие параметры, перейдите по ссылке
> https://groups.google.com/d/optout.

Ven Vol

unread,
Aug 17, 2015, 3:20:47 AM8/17/15
to Golang Russian
Вы 100% правы. пакет net/http и код вообще не при чем, но если "import net/http" убрать -то нормально все. В чем разница не вижу. Возм. как-то неправильно подключаются "штатные" пакеты у меня. М.б.пути... Вопрос как раз в том что подправить(где копнуть) в конфигурации Go, GoClipse, или GVM в Ubuntu 15.04.
go env выводит:
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/my/.gvm/pkgsets/go1.4.2/1:/home/my/workspace/Go"
GORACE=""
GOROOT="/home/my/.gvm/gos/go1.4.2"
GOTOOLDIR="/home/my/.gvm/gos/go1.4.2/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

воскресенье, 16 августа 2015 г., 23:09:33 UTC+3 пользователь Daniel Podolsky написал:

Dmitry Vyukov

unread,
Aug 17, 2015, 4:28:35 AM8/17/15
to gola...@googlegroups.com
Запустите go install с флажком -x, тогда он будет печатать все
выполняемые команды.
Перед сбоем должен запуститься компилятор 6c с флагами "-I
/home/my/.gvm/gos/go1.4.2/pkg/linux_amd64". Проверьте так ли это.
Потом проверьте, что есть файл
/home/my/.gvm/gos/go1.4.2/pkg/linux_amd64/runtime.h

Ven Vol

unread,
Aug 20, 2015, 11:25:03 AM8/20/15
to Golang Russian
......вот результат(1я стр.  строчка когда только 1 стр. "import net/http" закомменчена(из всех импортов) и билдится нормально и бинарник helgo, попадающий потом в каталог ~/workspace/Go/bin успешно выполняется, а после пустой строки - как раз попытка билдить с раскомменченной стр. "import net/http") :

go install -x
WORK=/tmp/go-build732449246

~/workspace/Go/src/helgo/src/helgo$ go install -x
WORK=/tmp/go-build362503273
mkdir -p $WORK/runtime/cgo/_obj/
mkdir -p $WORK/runtime/
cd /home/vn/.gvm/gos/go1.4.2/src/runtime/cgo
CGO_LDFLAGS="-g" "-O2" "-lpthread" /home/vn/.gvm/gos/go1.4.2/pkg/tool/linux_amd64/cgo -objdir $WORK/runtime/cgo/_obj/ -import_runtime_cgo=false -import_syscall=false -- -I $WORK/runtime/cgo/_obj/ -Wall -Werror cgo.go
/home/vn/.gvm/gos/go1.4.2/pkg/tool/linux_amd64/6c -F -V -w -trimpath $WORK -I $WORK/runtime/cgo/_obj/ -I /home/vn/.gvm/gos/go1.4.2/pkg/linux_amd64 -o $WORK/runtime/cgo/_obj/_cgo_defun.6 -D GOOS_linux -D GOARCH_amd64 $WORK/runtime/cgo/_obj/_cgo_defun.c
# runtime/cgo
/tmp/go-build362503273/runtime/cgo/_obj/_cgo_defun.c:6 6c: No such file or directory: runtime.h


.....тот же самый эффект и при
go run main.go -x
# runtime/cgo
/tmp/go-build894487950/runtime/cgo/_obj/_cgo_defun.c:6 6c: No such file or directory: runtime.h

...и при
go build main.go
# runtime/cgo
/tmp/go-build977407180/runtime/cgo/_obj/_cgo_defun.c:6 6c: No such file or directory: runtime.h


пока ничего не понял. Исходник тот-же (приаттачен). Попутно разобрался (для себя), что go install(build) не работали у меня (компилилось только в GoClips-е) , когда проекты лежали в /workspace/Go , и теперь все это работает(и там и там), когда проект лежит в /workspace/Go/src , и скомпилированный бинарник теперь попадает не в /workspace/Go/helgo/bin , а в /workspace/Go/bin (м.б. тут еще что-то недоконфигурил я до конца?)



понедельник, 17 августа 2015 г., 11:28:35 UTC+3 пользователь Dmitry Vyukov написал:
main.go

Dmitry Vyukov

unread,
Aug 20, 2015, 12:19:19 PM8/20/15
to gola...@googlegroups.com
ну так файл /home/vn/.gvm/gos/go1.4.2/pkg/linux_amd64/runtime.h есть или нет?

Dmitry Vyukov

unread,
Aug 20, 2015, 12:19:54 PM8/20/15
to gola...@googlegroups.com
вообще уже время проапдейтиться на 1.5

Ven Vol

unread,
Aug 21, 2015, 11:30:40 AM8/21/15
to Golang Russian
хм.. там только |grep run
runtime
runtime.a

...Вы правы пожалуй..
$  gvm install go1.5
Installing go1.5...
 * Compiling...

и примерчик (с приведенным ранее исходником успешно скомпилился и выполнился :) в 1.5  :)
Так что Спасибо за совет :)

1 осталось не очень понятно(хотя в eclipse +GoClipse примерчик уже успешно компилится при дефолтном pkgset global получается) : Какой всеже $GOPATH лучше прописать(и стоит ли) чтобы скачивать и github приложеньица в ~/workspace/Go/src/github.com и работать с ними   ~/workspace/Go/   или ~/workspace/Go/src?

И стоит ли удалить/заменить на ~/workspace/Go/ (из gvm pkgenv global ) почему-то дефолтно заданный там
export GOPATH; GOPATH="/home/vn/.gvm/pkgsets/go1.5/global (или лучше создавать свой отдельный pkgset для каждого проекта типа gvm pkgset create helgo ?)?
 

четверг, 20 августа 2015 г., 19:19:19 UTC+3 пользователь Dmitry Vyukov написал:

Vladimir Suchkov

unread,
Aug 26, 2015, 9:24:56 AM8/26/15
to Golang Russian
Почитайте вот это http://golang.org/doc/code.html 
Там основные принципы

Для организации кода, отдельно для каждого проекта посмотрите вот это https://github.com/tools/godep
Это инструмент для выделения разных версий используемых пакетов как части проекта

Для работы с кодом посмотрите вот это https://github.com/visualfc/liteide
В отличии от "эклипсов" с "идеями" эта среда написана специально под Go. Не смотря на то, что она сильно проще "эклипсов", среда позволяет удобно и просто разделить профили

пятница, 21 августа 2015 г., 18:30:40 UTC+3 пользователь Ven Vol написал:
Reply all
Reply to author
Forward
0 new messages