иди строить, пока строю С отдельно - PullRequest
2 голосов
/ 19 сентября 2019

У меня есть немного кода 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).

...