首页 > 解决方案 > 在单独构建 C 的同时构建

问题描述

我有一些 Go 代码和一些 C 代码(相当多)。我正在从 go 代码中调用 C 代码。这是一个例子:

测试.h

#ifndef TEST_H
#define TEST_H

void test();

#endif

测试.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。是否可以编译C并单独进行?这意味着如果我正在编写 Golang 代码,我将不必编译为 C 代码?

我试过链接目标文件,但似乎效率很低。如果这是最好的选择?如果是这样,您能否提供一个代码示例向我展示如何(因为我的方式仅适用于 Linux)。

标签: cgolinker

解决方案


推荐阅读