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
相关产品推荐
相关产品推荐

