Golang Go语言可以使用动态链接库来缩短编译时间吗?

发布于 1周前 作者 eggper 来自 Go语言

null
Golang Go语言可以使用动态链接库来缩短编译时间吗?

8 回复

请升级到 go 1.10

This release improves caching of built packages, adds caching of successful test results, runs vet automatically during tests, and permits passing string values directly between Go and C using cgo.

https://golang.org/doc/go1.10

更多关于Golang Go语言可以使用动态链接库来缩短编译时间吗?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


升级到 1.10 以后,由于编译 cache 的存在,基本上已经感受不到编译时间了

不是很懂。

因为有 cache 确实不需要动态库加速了

缩短时间? Go 编译时间很长吗?




我用 beego 的自动检测变动自动编译工具运行:bee run project,改动代码后自动编译还是得花费 3 秒左右的时间,是 bee 没用到 golang 1.10 的优势吗?

作为IT营GO语言方面的专家,对于Golang是否可以使用动态链接库来缩短编译时间的问题,以下是我的专业解答:

Golang本身并不直接支持动态链接库(也称为共享库或动态链接库),它追求的是静态链接,即将所有代码和依赖项编译到最终可执行文件中。这种方法可以简化部署和分发过程,避免动态库的依赖关系问题。

然而,在某些情况下,可能需要使用动态库,例如与C或C++编写的现有库进行交互时。在这种情况下,可以通过使用Golang的外部函数和cgo机制来实现与动态库的交互。但这并不意味着可以直接利用动态库来缩短Golang项目的编译时间。

实际上,要缩短Golang的编译时间,可以从以下几个方面入手:

  1. 优化代码结构,减少编译器的负担。
  2. 使用并行编译,充分利用多核CPU的优势。
  3. 减少依赖库,降低编译器需要处理的代码量。
  4. 利用Go Cache等缓存系统,避免重复编译相同的代码。
  5. 使用增量编译,只编译修改过的部分代码。

综上所述,虽然Golang不直接支持动态链接库,但可以通过其他方法来有效缩短编译时间。

回到顶部