我一直在C++中使用CMake来构建库和可执行文件,我想在go programming language中使用同样的方法.

What steps do I need to take to configure CMake so it would work with the go programming language?

本质上,我的编译器是6g,它生成一个已编译的foo.6-我通过6l foo将其发送到链接器.6.我做完了.我已经构建并安装了编译器和链接器.

显然,我可以为此编写一个简单的Makefile,但在整个项目中始终使用CMake会很好.

TIA需要任何能帮助我开始的建议.

推荐答案

您可能希望实现CMake对Go的支持.大致来说,它包括以下步骤:

  1. 创建CMakeDetermineGoCompiler.cmake个模块,可以找到Go
  2. 创造CMakeGoCompiler.cmake.in-a

  3. 创建CMakeTestGoCompiler.cmake,该模块将编译 简单地转到源代码,判断编译器是否工作.

  4. 创建CMakeGoInformation.cmake,它将设置一些与语言相关的 变量(CMAKE_GO_LINK_EXECUTABLE等)

这些内容应该放在CMAKE_MODULES_DIR中.作为参考,您可以看看Java/CXX支持是如何实现的.

或者,如果不想处理这些内部内容,您可以通过创建宏()来解决您的任务,这将创建一系列自定义目标/命令(请参见add_custom_{target,command}()文档).

Go相关问答推荐

如何在定制普罗米修斯出口商中测试动态计量注册?

Golang ==错误:OCI运行时创建失败:无法启动容器进程:exec:./" bin:stat./" bin:没有这样的文件或目录:未知

正在使用terratest执行terraform脚本测试,但遇到错误退出状态1

仅呈现一个模板的GIN Web应用程序

使用ciph.AEAD.Seal()查看内存使用情况

GO:如何指定类型约束,使S方法的参数类型与接收方的参数类型相同

Global Thread-local Storage 在 Go 中的可行性和最佳实践

以编程方式取消 pyspark dataproc 批处理作业(job)

如何以干净的方式在中间件中注入 repo 或服务?

设置 graphql 的最大文件上传大小(golang)

golang yaml 马歇尔网址

有没有办法约束(通用)类型参数?

读取非UTF8编码的文件内容并正确打印出来

如何在切片增长时自动将切片的新元素添加到函数参数

级联调用泛型函数时的泛型类型推断

如何在测试中使用自定义标志(使用`testify/suite`)

如何正确为 Go 中的值设置多种类型?

在 connect-go 拦截器中修改响应体

HCL 解码:具有多个标签的块

如何在 Go 中使用 Pact 返回错误请求(400、500)?