3
Я пытаюсь запустить вызов C из кода go go. Вот программа, которую я бегу:Невозможно выполнить вызов C из go
package main
// #include<proxy.h>
import "C"
import "fmt"
func main(){
fmt.Println(C.CMD_SET_ROUTE)
}
Здесь содержание файла proxy.h:
#ifndef PROXY_H
#define PROXY_H
#include <netinet/in.h>
#ifdef CMD_DEFINE
# define cmdexport
#else
# define cmdexport static
#endif
cmdexport const int CMD_SET_ROUTE = 1;
cmdexport const int CMD_DEL_ROUTE = 2;
cmdexport const int CMD_STOP = 3;
Теперь, вот ошибка я получаю при попытке запустить эту программу:
[email protected]:~$ go run test.go
# command-line-arguments
could not determine kind of name for C.CMD_SET_ROUTE
Я использую gccgo-5 и иду версию 1.4.2. Не могли бы вы помочь мне выяснить, что именно здесь происходит? ТИА.
Я хотел бы избежать, пытаясь использовать gccgo * и * go1.4.2. Придерживайтесь инструментальной привязки по умолчанию, пока у вас не возникнет особая потребность в gccgo, чтобы избежать путаницы. – JimB
В коде есть много синтаксических ошибок. Было бы лучше, если вы пройдете через [это] (http://blog.golang.org/c-go-cgo) сообщение в блоге перед использованием cgo. –