[英]Writing a makefile for a C++ program
有人可以幫我寫我的第一個Makefile嗎?
我在/path/to/main/code/helloworld.cpp
有一個helloworld.cpp
代碼。 然后,我剛剛添加了.h文件#include "SFML/network.hpp"
。
現在,SFML庫保存在/path/to/SFML/Library
如果有人可以幫助我入門,那就太好了。 同時,我正嘗試通讀文學作品,但文獻卻非常龐大。
盡管您可能需要學習傳統的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的更多文檔。
最后,CMake通常會發出嘈雜但無害的消息,要求您在CMakeLists.txt文件的頂部放置如下一行:
cmake_minimum_required(VERSION 2.8) # Quell warnings.
干杯。
它本身可能很簡單,但是只想推薦genmake.pl ,我將其用於我的學校項目。 它非常易於使用,它會為您生成一個框架Makefile,您需要填寫SFML
路徑之類的內容。
如果您使用的是ACE(自適應通信環境),則它帶有一個非常強大的Makefile創建實用程序,稱為MPC( Makefile Project Creator )
要編譯一個簡單的程序並自動生成GNU makefile,一個最小的示例可能是:
project(*my_project) : baseWorkspace {
exename = my_project
exeout = ./
Source_Files {
main.cpp
}
}
我發現使用此工具的妙處在於它可以繼承“基本”工作區,幾乎就像C ++中的多態性一樣。 當前項目中使用了“基本”中定義的庫,從而使程序員可以利用各種構建塊輕松地快速操作和創建項目。
我相信只能通過RPM下載和使用ACE的MPC部分,我會四處搜索,看看是否能找到適合您的示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.