Linux学习笔记-子目录的支持
生活随笔
收集整理的這篇文章主要介紹了
Linux学习笔记-子目录的支持
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在實際的工程項目中會使用子目錄:
通常,一個項目下會有多個子目錄,一個子目錄通常在邏輯上是一個模塊(不是強制要求)
Makefile相當于項目級的文件
如:
?
在Makefile中,要自動羅列出子目錄下的CPP文件,使用foreach
foreach相當于for循環;
dir相當于一個迭代器,像int i=0,i++這些;
第三個參數就是一個循環體;
?
文件結構如上面所屬,源碼如下:
object.h
struct MyPro{int m_value_a;int m_value_b;MyPro(){m_value_a=1;m_value_b=2;} };void printHello();object.cpp
#include "object.h" #include <stdio.h>void printHello(){printf("helloWorld!\n"); }main.cpp
#include "../object/object.h" #include <stdio.h>int main(){MyPro pro;printf("a=%d,b=%d\n",pro.m_value_a,pro.m_value_b);printHello();return 0; }Makefile
EXE=helloworld SUBDIR= src objectCXX_SOURCES=$(foreach dir,$(SUBDIR), $(wildcard $(dir)/*.cpp)) CXX_OBJECT=$(patsubst %.cpp, %.o, $(CXX_SOURCES)) DEP_FILES=$(patsubst %.o, %d, $(CXX_OBJECT))$(EXE): $(CXX_OBJECT)g++ $(CXX_OBJECT) -o $(EXE)%.o: %.CPPg++ -c -MMD $< -o $@-include $(DEP_FILES)clean:rm -rf $(CXX_OBJECT) $(DEP_FILES) $(EXE)運行截圖如下:
總結
以上是生活随笔為你收集整理的Linux学习笔记-子目录的支持的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++工作笔记-Windows下查找窗口
- 下一篇: Qt文件编码转换工具(三) Qt界面设计