Ответ 1
Вы используете 8c, который является компилятором c. 8g скомпилирует go, а 8l свяжется.
Я получил Go для компиляции:
0 known bugs; 0 unexpected bugs
и набрал "мир привет":
package main
import "fmt"
func main() {
fmt.Printf("Hello, 世界\n")
}
Затем я попытался скомпилировать его, но он не пойдет:
$ 8c gotest2 gotest2:1 not a function gotest2:1 syntax error, last name: main
Это происходит на Ubuntu Linux на Pentium. Go установлен и прошел тесты. Так где же я ошибся? Может кто-нибудь сказать мне, куда идти отсюда?
Я также попробовал эту программу:
package main
import fmt "fmt" // Package implementing formatted I/O.
func main() {
fmt.Printf("Hello, world; or Καλημέρα κόσμε; or こんにちは 世界\n");
}
Но это тоже не было go (нужно прекратить делать каламбуры):
$ 8c gotest3.go gotest3.go:1 not a function gotest3.go:1 syntax error, last name: main
Вы используете 8c, который является компилятором c. 8g скомпилирует go, а 8l свяжется.
Для Go 1.0+ правильная команда сборки теперь: go build
(Обновление для Go1.0.x)
Раздел "" Скомпилировать пакеты и зависимости" теперь перечислите go build как способ компиляции в go.
Вы по-прежнему вызываете 8g
за сцену, а параметры, которые вы можете передать на 8g
, теперь передаются с помощью -gcflags
.
-gcflags 'arg list'
для передачи каждого вызова 5g, 6g или 8g компилятора
используйте go run для запуска программы go. Вот вывод.
$ cat testgo.go
package main
import "fmt"
func main() {
fmt.Printf("Hello, 世界\n")
}
$go run testgo.go
Hello, 世界
Также вам не хватает fmt
import fmt "fmt"
как указано в уроке в первом ответе ссылка
А, я вижу, вы пробовали это сейчас...