我真的很喜欢 GO 可以轻松完成的许多任务的交叉编译/平台操作。我有一个问题,我想,相当于 #ifdef / #else 类型的构造,用于执行/编译基于操作系统的函数。这是场景 - 假设我有一个函数可以将信息插入操作系统的控制结构中,以便在用户下次启动系统时启动进程。在 Windows 上,我会为用户更新“RUN/RUNONCE”注册表项,在 MAC 上会有一个 plist 条目等。本质上,我希望能够编写类似于此的内容(或重载操作系统特定功能):func setStartupProcessLaunch () { if [OS is Windows] { updateRegistry(){} } else if [OS is Darwin] { updatePlist(){} } else if [OS is Linux] { doLinuxthing() {} }}给定静态编译,任何未被调用的例程都将被标记为编译错误。所以理想情况下,我想在#ifdef WINDOWS、#ifdef MAC 类型的块中包含我的“doSpecificOS()”函数——实现这一点的正确方法是什么?我希望我不需要为每个 OS 平台创建多个相同程序的项目树。
- 3 回答
- 0 关注
- 230 浏览
添加回答
举报
0/150
提交
取消