【发布时间】:2013-12-22 00:44:18
【问题描述】:
我有一个简单的 C# 程序,需要从 Linux 的命令行通过 mono 运行。到目前为止,这是我的 makefile 的内容。它基于我为另一个程序找到的 C++ makefile。我尝试修改它以使用我的 C# 程序,但它说找不到某些源文件。
.PHONY : build view clean
build : test
@# do nothing
test : test.o
gmcs test test.o
test.o : test.cs
gmcs test.cs
view :
@\less test.cs
clean :
-\rm *.exe
-\rm test
我以前从未使用过 makefile,所以我真的不知道我做错了什么。我的整个项目中只有一个文件,就是 test.cs。这样做的最终目标是能够通过在命令行中键入来运行程序:
./test
它还应该清理生成的 .exe 文件。
【问题讨论】:
-
您得到的确切错误是什么?
make test的输出是什么? -
输出为:gmcs test.cs gmcs test test.o error CS2001: Source file 'test' could not be found 错误 CS2001: Source file 'test.o' could not be found 编译失败: 2 个错误,0 个警告:*** [测试] 错误 1
-
我不认为问题出在 makefile 上。你确定你使用 gmcs 对吗?根据mono-project.com/Mono_Basics,您从运行的第一个命令中得到一个 exe,而不是 .o 文件。
-
我尝试将所有 .o 文件更改为 .exe,但我收到错误消息“test.exe”是二进制文件,而不是除之前的所有错误之外的文本文件。
-
你能用MonoDevelop吗?无论如何,显然问题不在于makefile,而在于您使用gmcs的方式。尝试在没有 make 文件的情况下编译代码,直到获得正确的命令。