2017-04-07 43 views
0

我是C++新手,我正在尝试以下操作。我正在使用mac,安装了Xcode并试图创建一个makefile。目前,我有以下文件我的文件夹中:Makefile将不会被创建

的main.cpp

Foo.cpp中

Foo.hpp

我踏入了文件夹,并尝试make命令。它给了我下面的:

make: *** No targets specified and no makefile found. Stop.

我也尝试过“让主”,这给了:

ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [main] Error 1

而且高于一些其他的东西。我是新来的生成文件,我不知道如何创建它。但是,当我将这些文件发送给有Ubuntu的朋友时,他只是键入make并立即编译它,这是我不明白为什么我没有得到。

积极向所有的反应和解释到底如何创建一个makefile程序。它应该是自动生成的,不是吗?或者我自己写了吗?

我试着创建一个makefile,并按照一个例子,但它给我一个关于缩进的问题。

谢谢!

+0

请在两个系统上比较'make -v'的输出。我认为在MacOSX上你有另一个'make'的实现(例如BSD make,而不是像Ubuntu上的GNU make)。 – uzsolt

回答

1

通过运行make,您不会创建生成文件,就像您不通过运行C++编译器创建Foo.cpp那样创建文件一样。您可以通过在编辑器中写它创建一个makefile ,只是你作为创建Foo.cpp

所以,去创造你需要学习如何编写一个,在 语言make,来完成你希望它是什么一个makefile,就像你学习C++编写Foo.cpp所需的 一样。

一旦你写了一个makefile,你可以运行make来处理那个makefile并执行你在makefile中编码的任务。 这些通常会自动执行您编写的某些 软件的任务,以便在最短时间内以最少的工作完成(重新)构建它。

不同版本的make具有大致相同但显着不同的 语言。找出您正在使用的make的版本($ make -v)和 ,然后研究其文档和在线教程。 make的语言是 比C++简单得多,但仍然非常复杂,以至于你无法通过猜测来学习它。

最广泛使用的版本是GNU Make。这里是an introductory tutorial。 对于权威的文档,这里是the manual

0

adding to what mike said..

Makefile是完全独立的Xcode(SWIFT),这意味着要么除非你去deeeeeep到Xcode的构建系统,你不能创建一个/使用它urself的东西LLDB编译器和(从Xcode.app编译远)目标......

download this makefile on my github if you want to build c++ on mac

我用它来与一个makefile,我能控制的开始新的C++项目。使用它来构建您自己的未来...它是我们正在讨论的一个简单的准系统示例(对于macOS)