Compilation 编译一个非C/C++;来自CLI的跨平台项目

Compilation 编译一个非C/C++;来自CLI的跨平台项目,compilation,makefile,cross-platform,project,Compilation,Makefile,Cross Platform,Project,假设我们有一个非C/C++语言的项目,由一堆源文件组成。我们如何使用make或类似的工具从命令行编译这组代码?它应该只编译项目目录中的每个源文件,并从中创建一个可执行文件。听起来不太难,但我似乎找不到一个简单的答案。你能更具体地说明你需要编译的语言和平台吗 不同语言/平台的编译过程不同。例如,您可能不想使用make来编译用Java编写的东西: (至少,与C++不同)make的模式规则功能相当强大。假设您要从c#源文件a.cs,b和c中构建程序a,b.cs和c.cs,则生成文件如下所示: all

假设我们有一个非C/C++语言的项目,由一堆源文件组成。我们如何使用
make
或类似的工具从命令行编译这组代码?它应该只编译项目目录中的每个源文件,并从中创建一个可执行文件。听起来不太难,但我似乎找不到一个简单的答案。

你能更具体地说明你需要编译的语言和平台吗

不同语言/平台的编译过程不同。例如,您可能不想使用
make
来编译用Java编写的东西:
(至少,与C++不同)

make
的模式规则功能相当强大。假设您要从c#源文件
a.cs
b
c
中构建程序
a
b.cs
c.cs
,则生成文件如下所示:

all : a.exe b.exe c.exe

%.exe : %.cs
     csc.exe /out:$@ $^
文件中的第一条规则告诉
make
要做什么。它按惯例命名为
all
。第二条规则是一个模板,它定义了如何通过调用下一行给出的编译器,使以
.exe
结尾的文件名与以
.cs
结尾的文件名相同。记得在最后一行前面放一个标签


$^
$@
是自动变量,分别表示“目标名称”和“所有先决条件”。

您尝试了什么?毕竟,这是一个简单的三行程序,如果你展示你的特定代码并准确地说出它的输出出了什么问题,我们会更好地理解你的问题。我目前正在编写C#,在谷歌上搜索“makefile template C#”之类的东西,但没有找到任何东西。你提到的三行是什么?这有点解释。有用的文章!因此,实际上构建程序本质上是特定于语言的。这意味着我应该仔细阅读为C#编写项目文件的内容。