来自Xcode编写的C ++程序的Makefile for Linux

时间:2013-07-15 14:07:49

标签: c++ linux gcc makefile

我在Xcode上编写了一个简单的c ++程序,所有程序都包含在名为huffmanGenerator.cpp的ONE FILE中。程序从用户计算机上的文件读取输入,并将输出写入保存到其计算机的文件。

教师要求我们创建一个makefile,以便我们的程序在Linux中使用g ++或gcc编译和运行;然而,她从未向我们展示过如何这样做,当班级寻求帮助时,她的回答是我们可以弄清楚。

我在网上发现了许多链接,但是它们都非常令人困惑,因为这对我来说都是新手,而且大多数都无法回答最基本的问题,比如makefile应该是什么类型的文件?它是.txt吗?我应该只保存一个字吗?

请帮助做教师不会做的事,赐教。谢谢!

2 个答案:

答案 0 :(得分:1)

  

makefile应该是什么类型的文件?

它应该是名为Makefilemakefile的纯文本文件。名称重要的原因是因为当您运行make命令时,它会默认查找具有此名称的文件,以获取有关如何编译代码的说明。只要在运行时指定名称,您也可以将其命名为任意名称(make -f filename )。

  

是.txt吗?

不,它没有扩展名。扩展在* nix中并不意味着那么多。

  

我应该只保存一个字吗? (假设您的意思是Microsoft Word。)

不,绝对不是。空格(制表符/空格/换行)在这些文件中有意义,因此您应该使用不会向文件添加格式的编辑器。像pico / vi / etc这样的东西。

这是一个makefile的例子,我认为你会问。

# You can change your compiler to gcc / g++ here.
CC=g++
# Add whatever flags you want to use here.
CFLAGS=-c -Wall

all:
    $(CC) $(CFLAGS) huffmanGenerator.cpp -o huffmanGenerator
#Use something like this to run `make clean` which deletes your object files, so you can do a fresh compile.    
#clean:
#   rm -rf *o huffmanGenerator

作为旁注,你最好不要责怪你的教授没有为你拼出一切。毕业时,您将经常获得除了一系列要求和截止日期之外没有其他指示的任务。你需要搞清楚。您可以通过访问http://mrbook.org/tutorials/make/(搜索谷歌搜索'makefile tutorial')轻松制作此make文件。

答案 1 :(得分:0)

makefile应该被称为Makefile。它只是一个文本文件。

您需要一个文本编辑器。有很多可供选择,vim,emacs,nano,pico,...等等。

打开命令行并运行,比如说

$ pico Makefile

然后您将输入Makefile的内容

all:
    g++ -o huffmanGenerator huffmanGenerator.cpp

保存并退出并运行make

$ make