如何让CMake使用go编程语言?

时间:2011-11-02 10:03:03

标签: cmake go

我一直在使用CMake和C ++来构建库和可执行文件,并希望将它用于 go编程语言

我需要采取哪些步骤来配置CMake才能使用go编程语言?

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

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

TIA提供任何可以帮助我入门的建议。

3 个答案:

答案 0 :(得分:17)

您可能希望实施CMake对Go的支持。粗略地说,它涉及以下步骤:

  1. 创建 CMakeDetermineGoCompiler.cmake 模块,该模块会找到Go 当前系统的编译器。
  2. 创建 CMakeGoCompiler.cmake.in - a 模板,由CMakeDetermineGoCompiler配置。

  3. 创建 CMakeTestGoCompiler.cmake ,这个模块会编译一个 simple go source来检查编译器是否有效。

  4. 创建 CMakeGoInformation.cmake ,这将设置一些与语言相关的内容 变量(CMAKE_GO_LINK_EXECUTABLE等)
  5. 这些东西应放在CMAKE_MODULES_DIR中。作为参考,您可以了解如何实现Java / CXX支持。

    或者,如果不想弄乱这些内部的东西,你可以通过创建一个宏()来解决你的任务,这将创建一堆自定义目标/命令(请参阅add_custom_ {target,command}()文档)。

答案 1 :(得分:6)

不使用CMake(或任何其他构建系统)符合您的最佳利益。

Go有一种简单的内置方式来构建包:go build(这也使go getgo install工作)。 go build,按照设计,不需要像make或cmake这样的其他工具。

如果您使用CMake(或任何其他构建系统),您将只为自己(如果您计划使用由他人开发的库)或其他人(如果您计划开发旨在开发的库)的生活更加艰难被他人使用)。

答案 2 :(得分:0)

我创建了一个简单的go.cmake模块,用于使用CMake结合C / C ++和Go。

https://github.com/krumberg/cmake_go