У меня есть немного кода Go и немного кода на C (совсем немного).Я вызываю код C из кода go.Вот пример:
test.h
#ifndef TEST_H
#define TEST_H
void test();
#endif
test.c
#include "test.h"
#include <stdio.h>
void test() {
printf("Hello from C!")
}
main.go
package main
// #include "test.h"
import "C"
import "fmt"
func main() {
C.test()
}
Представьте, что у меня гораздо больше кода C.Этот код C требует времени для компиляции.При компиляции с использованием go build
он каждый раз перекомпилирует C.Можно ли скомпилировать С и зайти отдельно?Это означает, что если я работаю над кодом Golang, мне не придется компилировать код C?
Я пытался связать объектные файлы, но это кажется очень неэффективным.Если это лучший вариант?Если да, не могли бы вы привести пример кода, показывающий мне, как (так как мой способ работает только в Linux).