You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下能否无需在控制台指定引用DLL编译C#代码?

更简便的编译优化方案

1. 用Makefile实现自动化增量编译

创建Makefile放在项目根目录,内容如下:

# 统一定义依赖的程序集引用
REFS = -r:System.Windows.Forms.dll,System.Drawing.dll
# 最终生成的主程序
MAIN_TARGET = main.exe

# 默认执行编译主程序
all: $(MAIN_TARGET)

# 编译engine模块
engine.exe: engine.cs
	mcs engine.cs $(REFS)

# 编译主程序,依赖engine.exe
$(MAIN_TARGET): main.cs engine.exe
	mcs main.cs $(REFS),engine.exe

# 清理生成的可执行文件
clean:
	rm -f engine.exe $(MAIN_TARGET)

使用时,终端输入make即可自动完成编译,Make会自动检测文件修改情况,只重新编译变动过的部分。后续新增文件,只需在Makefile里添加对应的编译规则即可。

2. 编写Shell脚本一键编译

如果觉得Makefile太复杂,写个轻量的bash脚本也能解决问题。创建build.sh文件:

#!/bin/bash
echo "开始编译engine.cs..."
mcs engine.cs -r:System.Windows.Forms.dll,System.Drawing.dll
echo "开始编译main.cs..."
mcs main.cs -r:System.Windows.Forms.dll,System.Drawing.dll,engine.exe
echo "编译完成!"

给脚本添加执行权限:chmod +x build.sh,之后每次编译只需运行./build.sh即可。新增文件时,直接在脚本里追加对应的编译命令就行。

3. Atom编辑器集成编译流程

借助Atom的script插件可以直接在编辑器内触发编译:

  • 安装script插件后,打开设置 > 插件 > Script > 设置
  • 在Command项选择bash,参数填写./build.sh(前提是已经创建好上述编译脚本)
  • 之后按下Ctrl+Shift+B(或对应快捷键),就能在Atom内完成编译,无需切换到终端。

如果不想依赖脚本,也可以直接在Script插件中配置mcs命令:针对main.cs的编译命令设置为mcs main.cs -r:System.Windows.Forms.dll,System.Drawing.dll,engine.exe,但脚本方式更灵活,后续修改编译规则只需调整脚本内容。

内容的提问来源于stack exchange,提问作者LuckyMG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 09:10:37