【问题标题】:Makefile for Linux from Xcode-written C++ program来自 Xcode 编写的 C++ 程序的 Linux 的 Makefile
【发布时间】:2013-07-15 14:07:48
【问题描述】:

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

讲师要求我们创建一个 makefile,以便我们的程序在 Linux 中使用 g++ 或 gcc 编译和运行;但是她从来没有向我们展示过如何做到这一点,当全班寻求帮助时,她的回答是我们可以解决。

我在网上找到了很多链接,但它们都非常令人困惑,因为这对我来说是全新的,而且其中大多数甚至无法回答最基本的问题,例如 makefile 应该是什么样的文件?是.txt吗?我应该只用word保存一个吗?

请帮忙做教练不会做的事,赐教。谢谢!

【问题讨论】:

  • 该文件通常应称为“makefile”或“Makefile”。它没有扩展名(这些在 Linux 中无关紧要)。你绝对不应该在 Word 中创建它,因为空格在 makefile 中是有意义的。您应该使用 nano/vi/emacs/etc 之类的编辑器。
  • 这里有一个quick tutorial,可以帮助您入门。如果您想更深入地了解make,请查看GNU make manual
  • 其他帖子涉及的内容要多得多,从 windows 到 Linux。我要从 Mac 到 linux,我的程序只包含标准库中的头文件。

标签: c++ linux gcc makefile


【解决方案1】:

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

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

它是一个 .txt 文件吗?

不,它没有扩展名。扩展在 *nix 中没有多大意义。

我应该只保存一个单词吗? (假设您指的是 Microsoft Word。)

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

这是一个 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/ 轻松制作此 make 文件(在 google 中搜索“makefile 教程”)。

【讨论】:

  • 谢谢。感谢您的帮助和回应。我不怪教授,我只是说一些更清晰的帮助会很棒。这是我第一次遇到这种情况,我仍处于教育的最初阶段,我可能已经迷失了。所有在线教程只会在我脑海中产生更多问题,整个事情变得越来越糟糕,所以当我向我的导师寻求帮助时,我什么也得不到,这非常令人沮丧。我不想被评价我自学的能力,或者谷歌的东西。无论如何,非常感谢您的帮助!
  • 没问题 - 我不是想教训你,我只是说因为几年前我和你在同一个地方。指责教授很容易(有时,他们真的无济于事),但最好的办法是真正善于为自己解决问题,而这只能来自实践。祝你好运。
【解决方案2】:

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

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

打开命令行并运行,说

$ pico Makefile

然后你将输入 Makefile 的内容

all:
    g++ -o huffmanGenerator huffmanGenerator.cpp

保存退出并运行make

$ make

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多