golang编译问题

解决Go编译时只读文件系统问题及国内源设置

编译时提示工作目录文件系统只读

go: creating work dir: mkdir /tmp/go-build2069696743: read-only file system
方法一:
尝试了很多办法,重新挂载可读可写,还是不行,只能重启

sudo reboot

方法二:
重新设置GOTMPDIR

# Linux
mkdir temp
export GOTMPDIR=`pwd`/temp

REM windows
mkdir temp
set GOTMPDIR=%cd%/temp

编译时拉不下来指定依赖包

设置国内源 Go 1.13 及以上(推荐)

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

如果是低版本golang参考goproxycn

### TypeScript 编译过程 TypeScript 是一种静态类型的编程语言,其编译过程主要由 `tsc`(TypeScript Compiler)完成。它将带有类型信息的 TypeScript 文件转换为纯 JavaScript 文件。以下是 TypeScript 的编译特点: - **前置阶段**:在编译之前,TypeScript 会对源码进行语法分析和类型检查。这一阶段会验证代码是否符合 TypeScript 的类型规则,并报告潜在的错误[^1]。 - **中间表示 (IR)**:TypeScript 不会产生类似于 C 或 Go 中间层的目标文件或汇编代码。它的目标是直接生成可运行的 JavaScript 代码。 - **后端外包给宿主环境**:由于最终产物是 JavaScript,因此许多高级优化被交给了浏览器或其他 JavaScript 运行时引擎来处理。这意味着 TypeScript 的 AOT(Ahead-of-Time Compilation)策略更倾向于减少复杂度并依赖后续执行环境的性能提升[^1]。 ```javascript // Example of TypeScript compilation result const addNumbers = (a: number, b: number): number => { return a + b; }; ``` --- ### Golang 编译机制 Golang 提供了一种高效的编译模型,支持快速构建程序。以下是 Golang编译特性概述: - **单步编译**:Go 编译器采用一次性编译的方式,从源代码直接生成二进制可执行文件。这种设计减少了多阶段编译带来的开销[^3]。 - **严格类型系统**:作为强类型语言Go编译期强制要求所有的变量都具有明确的数据类型。这不仅提高了安全性,还允许编译器实施更多的静态优化[^2]。 - **内联优化与逃逸分析**:Go 编译器内置了许多现代技术,例如函数内联扩展以及堆栈分配决策逻辑(即所谓的“逃逸分析”)。这些措施有助于提高运行效率而无需开发者手动干预。 ```go package main import "fmt" func addNumbers(a int, b int) int { return a + b } func main() { fmt.Println(addNumbers(5, 7)) } ``` --- ### TypeScript vs Golang 编译特性的对比 | 特性 | TypeScript | Golang | |-------------------------|---------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------| | 输出形式 | 转换为 JavaScript | 生产独立的机器码 | | 类型检查时机 | 编译前 | 编译期间 | | 是否有中间态 | 没有明显 IR 层次 | 存在内部 AST 和 SSA 表达 | | 对下游工具链的要求 | 主要依靠 JS 引擎 | 自身实现完整的前后端功能 | | 支持的语言特性 | 动态脚本风格加静态类型注解 | 更接近底层硬件抽象 | 尽管两者都是为了简化开发体验而生,但它们服务于不同的应用场景——TypeScript 致力于增强 Web 开发者的工作流;相比之下,Go 则专注于服务器端高性能计算领域的需求[^4]。 --- ####
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

telllong

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值