[英]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所指線程上發布的解決方案(改寫為僅顯示解決方案)。
並非必須將其編譯到靜態庫中,但默認假設是每個目標文件都與源文件進入同一目錄。
包含+ =標頭srcINCLUDES僅適用於頭文件。 你需要
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.