美文网首页
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编写,GDB调试

    1.makefile编写的三要素 在学习编写makefile文件以前,我们先来看makefile编写的三要素。 1...

  • 编写Makefile及简单分析

    makefile的好处:一次编写,终身受益 makefile的命名规则: makefile Makefile ma...

  • 二 . 树莓派A20驱动程序编写(模板程序)

    1 Makefile Makefile文件编写如下: 2 *.c文件 建立一个test.文件,编写内容如下: 3 ...

  • Makefile 编写

    1. 原生 Makefile 自己编写 Makefile 文件 2. CMakeLists.txt 文件 CMak...

  • Makefile编写

    背景 以前学的一些东西需要记录下 Makefile 编写 以自己实际项目来阐述每个的用法 目录结构15324023...

  • 编写Makefile

    最近学习了如何编写Makefile,以下是一则实例 文件结构 Makefile实例

  • Makefile 编写

    通配符 $? 所有比目标新的依赖目标的集合 $^ 所有依赖 的集合 $+ 所有依赖的目标的集合,但是不去重 $% ...

  • makefile编写

    1、若是同一个目录下的C文件比如目录下有a.c、b.c两个文件,可编写如下

  • makefile 编写

    1. Makefile 中::=,?=, +=, =的区别 = 是最基本的赋值:= 是覆盖之前的值?= 是如果没有...

  • makefile入门一

    Linux下Makefile详解 下面就来看如何写Makefile文件:Makefile文件编写规范: 下来看事例...

网友评论

      本文标题:Makefile 编写

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