2013-02-04 98 views
0

有人可以幫我寫我的第一個makefile嗎?我有helloworld.cpp代碼/path/to/main/code/helloworld.cpp。 然後我剛剛包含一個.h文件#include "SFML/network.hpp"爲C++程序編寫makefile

現在SFML庫保存在/path/to/SFML/Library

這將是巨大的,如果有人能夠幫助這個我起步。與此同時,我試圖通過文學閱讀,但它非常壓倒。

+0

@JonathanLeffler:我很抱歉這個錯字:(它的cpp。謝謝 – Fraz

回答

3

儘管您可能需要學習傳統的GNU Makefile語法才能與其他項目一起工作,但我建議將CMake用於您自己的項目,因爲它更簡單,更直觀。

爲你的例子會去在一個文件中CMake的文件在你的項目的根目錄下名爲CMakeLists.txt(同在此情況下,源),並期待這樣的:

project(HelloWorld)      # Name your project. 
add_executable(helloworld helloworld.cpp) # Specify an executable to build. 
link_directories(/path/to/SFML)   # Tell it where your libraries are. 
target_link_libraries(helloworld Library) # Tell it which library to link. 

如果你想成爲能夠從包含(#include)頭SFML不包括目錄名每一次,那麼你也可以這樣寫:

include_directories(SFML)     # Tell it where your headers are. 

上寫CMake的文件並運行CMake的其他文檔可從website

最後,CMake的往往給人以嘈雜,但無害的消息,要求你把這樣一行在你的CMakeLists.txt文件的頂部:

cmake_minimum_required(VERSION 2.8)  # Quell warnings. 

乾杯。

+0

感謝您的回覆。在SFML ..有像src,build和我需要的文件實際上在/ path/to/SFML/include/SFML/network.hpp ?? 我會在哪裏指定這個?THanks – Fraz

+1

然後寫'include_directories(/ path/to/SFML/include/SFML)'。 –

2

它可能很簡單,但只是想推薦genmake.pl,我用這對我的學校項目有很大的影響。它使用起來非常簡單,它會爲您生成一個框架Makefile,並且需要填寫路徑SFML

1

如果您使用ACE(自適應通信環境),它帶有名爲MPC一個非常強大的makefile文件創建工具(Makefile Project Creator

要編譯一個簡單的程序,並自動生成GNU的makefile,一個最小的例子可能是:

project(*my_project) : baseWorkspace { 
     exename = my_project 
     exeout = ./ 
     Source_Files { 
      main.cpp 
     } 
    } 

我發現,使用這個工具的優點在於它能夠繼承「基地」工作空間,就像多態性C++。在「基礎」中定義的庫在當前項目中使用,允許程序員利用各種構建塊快速輕鬆地操作和創建項目。

我確信只有ACE的MPC部分可以通過RPM下載和使用,我會搜索並查看是否可以爲您找到合適的示例。