簡體   English   中英

帶有子目錄的OMake編譯

[英]OMake compilation with sub-directories

瀏覽OMake文檔,似乎每當使用子目錄的源時-始終總是先將它們編譯到靜態庫中。 這總是必要的嗎? 我可以編譯和鏈接所有內容而無需構建庫嗎? 我一直試圖為此編寫OMakefiles,但沒有成功。

目錄結構示例:

myproject:OMakeroot,OMakefile,main.cpp

myproject / headers:file1.h

myproject / src:file1.cpp


myproject OMakeroot的內容:

打開構建/ C

.SUBDIRS :。

myproject Omakefile的內容:

CXX = g ++

CXXFLAGS =-牆

包含+ =標頭src

CXXProgram(myapp,主文件1)


標頭和src目錄中的OMakefiles為空,不確定是否需要添加任何內容。

運行omake myapp時出現錯誤:

不知道如何構建“ myapp”所需的“ file1.o”

供以后參考,以防萬一線程消失了,這是Maxicat所指線程上發布的解決方案(改寫為僅顯示解決方案)。

並非必須將其編譯到靜態庫中,但默認假設是每個目標文件都與源文件進入同一目錄。

包含+ =標頭src

INCLUDES僅適用於頭文件。 你需要

 INCLUDES += $(dir headers) .SUBDIRS: src 

(注1-前兩行的順序很重要。我編寫它的方式,src目錄將獲得更新的INCLUDES;如果您不希望這樣做,請對這兩行重新排序。)

(注2-上面的代碼期望一個src / OMakefile文件,即使一個空文件也可以。您可以編寫類似

 .SUBDIRS: src return # A no-op body 

將./src/OMakefile“內聯”到./OMakefile中)

CXXProgram(myapp,主文件1)

應該

 CXXProgram(myapp, main src/file1) 

嘗試src/file1 ,以便omake知道它需要構建src/file1.o而不是file1.o ,因此需要src/file1.cpp而不是file1.cpp (不存在)。

在Omake郵件列表中已解決此問題,此處僅提供完整性鏈接以確保完整性: http ://lists.metaprl.org/pipermail/omake/2009-July/002094.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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