zoukankan      html  css  js  c++  java
  • 一点一点学写Makefile(5)-获取文件所在路径

    我们在开发一套代码时,应该保证工程放到任何一个目录中均可以编译成功,但是有时候链接库的时候会造成编译错误,本次就会告诉大家如何动态的获得工程所在的绝对路径

    代码下载目录 选择Makefile-5


    1. //makefile  
    2. CROSS =   
    3. CC = $(CROSS)gcc  
    4. CXX = $(CROSS)g++  
    5. DEBUG =   
    6. CFLAGS = $(DEBUG) -Wall -c  
    7. MV = mv -f  
    8. RM = rm -rf  
    9. LN = ln -sf  
    10.   
    11.   
    12. TOP_PATH = $(shell pwd)  
    13. SRC_PATH = $(TOP_PATH)/src/  
    14. BIN_PATH = $(TOP_PATH)/bin/  
    15. LIB_PATH = $(TOP_PATH)/lib/  
    16. INC_PATH = $(TOP_PATH)/include/  
    17.   
    18. SRCS = $(wildcard $(SRC_PATH)*.cpp)  
    19. OBJS = $(patsubst %.cpp, %.o, $(SRCS))  
    20. #LIBS += $(LIB_PATH)libconfig.a  
    21. LIBS += -lconfig  
    22.   
    23. VERSION = 1.0.0.0  
    24. TARGET = adx$(VERSION)  
    25.   
    26. all:$(TARGET)  
    27.     $(MV) $(TARGET) $(BIN_PATH)  
    28.     $(LN) $(BIN_PATH)/$(TARGET) $(BIN_PATH)/adx   
    29.   
    30. $(TARGET) : $(OBJS)  
    31.     $(CXX) $^ -o $@ -L$(LIB_PATH) $(LIBS)  
    32.   
    33. $(OBJS):%.o : %.cpp  
    34.     $(CXX) $(CFLAGS) $< -o $@ -I$(INC_PATH)  
    35.   
    36. .PHONY : clean  
    37. clean:  
    38.     $(RM) $(TARGET) $(OBJS)  


    如上图  TOP_PATH = $(shell pwd) 就可以获取工程所在的绝对目录,其他所有文件夹根据这个目录来获得目录地址。

    SRC_PATH = $(TOP_PATH)/src/
    BIN_PATH = $(TOP_PATH)/bin/
    LIB_PATH = $(TOP_PATH)/lib/
    INC_PATH = $(TOP_PATH)/include/
    看下面的代码

    SRCS = $(wildcard $(SRC_PATH)*.cpp)
    OBJS = $(patsubst %.cpp, %.o, $(SRCS))
    #LIBS += $(LIB_PATH)libconfig.a
    LIBS += -lconfig

    这几句就是根据目录获得源文件、目标文件的名字,如果是静态库建议使用#LIBS += $(LIB_PATH)libconfig.a的方式,如果同一个目录中既有静态库又有动态库,系统有限选择动态库,请注意这点。

  • 相关阅读:
    Oracle EBS json
    OAF--基础
    Oracle EBS FA 本年折旧
    Oracle EBS FA 获取累计折旧
    SOAP REST
    Oracle EBS FA 资产取值
    Java ——基础语法
    PL/SQL APIs for Concurrent Processing
    Using Globals in Oracle Reports (Doc ID 34751.1)
    Using SRW Packaged Procedures In Reports (Doc ID 61643.1)
  • 原文地址:https://www.cnblogs.com/catgatp/p/6527243.html
Copyright © 2011-2022 走看看