如何使用伪 CGO 指令在子目录中添加 C 文件作为 go build 的一部分?

How to add C files in a subdirectory as part of go build by using pseudo CGO directives?

根据文档,go build 与 cgo 将在包的根目录中添加任何 C/C++ 文件作为编译的一部分。有没有办法通过使用 CGO 指令使给定子目录中的 C/C++ 文件也成为编译的一部分以及根目录中的文件?

不是真的。你唯一的选择是让子目录成为另一个 Go 包,但是你必须在导出的 Go 函数中包装你需要的任何功能,并将其导入你的项目。

C/C++ 文件的编译是为了满足基本要求,但任何更复杂的东西都需要单独构建源代码,并提供适当的 CGO 指令进行链接。 Go 工具链并不是一个完整的构建工具。