美文网首页
Makefile 编写

Makefile 编写

作者: that_is_this | 来源:发表于2018-04-13 10:16 被阅读20次

    1. 原生 Makefile

    自己编写 Makefile 文件

    CPP_SOURCES = $(wildcard f8left/*.cpp)
    HEADERS = $(wildcard f8left/*.h)
    
    OBJS = ${CPP_SOURCES:.cpp=.o}
    
    TARGET = fixs
    
    CC = g++
    CFLAGS = -g -std=c++11 -Wformat=0
    
    
    $(TARGET) : $(OBJS)
        $(CC) $(CFLAGS) $^ -o $@
    
    %.o : %.cpp $(HEADERS)
        $(CC) $(CFLAGS) -c $< -o $@
    
    clean:
        rm -f $(TARGET) $(OBJS)
    

    2. CMakeLists.txt 文件

    CMake的所有的语句都写在一个叫:CMakeLists.txt的文件中。当CMakeLists.txt文件确定后,可以用ccmake命令对相关 的变量值进行配置。这个命令必须指向CMakeLists.txt所在的目录。配置完成之后,应用cmake命令生成相应的makefile(在Unix like系统下)或者 project文件(指定用window下的相应编程工具编译时)。

    其基本操作流程为:

    $> ccmake directory
    $> cmake directory
    $> make
    

    其中directory为CMakeList.txt所在目录;

    第一条语句用于配置编译选项,如VTK_DIR目录 ,一般这一步不需要配置,直接执行第二条语句即可,但当出现错误时,这里就需要认为配置了,这一步才真正派上用场;
    第二条命令用于根据CMakeLists.txt生成Makefile文件;
    第三条命令用于执行Makefile文件,编译程序,生成可执行文件;
    
    cmake_minimum_required(VERSION 3.3)
    project(SoFixer)
    
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    
    # if Want to build 32 bit executable, please set this flag
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
    
    
    aux_source_directory(. ROOT_SRC)
    
    if(SLibrary)
        add_library(SoFixer STATIC ${ROOT_SRC})
    else()
        add_executable(SoFixer ${ROOT_SRC} main.cpp)
    endif()
    

    暂无时间去完全理解,可参考:https://www.cnblogs.com/lidabo/p/7359422.html
    有时间再弄

    相关文章

      网友评论

          本文标题:Makefile 编写

          本文链接:https://www.haomeiwen.com/subject/mxtckftx.html