2017-04-07 67 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)