簡體   English   中英

為C ++程序編寫makefile

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM