Makefile 编写

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
有时间再弄

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • CMake学习 本篇分享一下有关CMake的一些学习心得以及相关使用。 本文目录如下: [1、CMake介绍] [...
    AlphaGL阅读 14,213评论 11 79
  • 注:首发地址 1. 前言 当在做 Android NDK 开发时,如果不熟悉用 CMake 来构建,读不懂 CMa...
    cfanr阅读 24,717评论 1 53
  • 通配符 $? 所有比目标新的依赖目标的集合 $^ 所有依赖 的集合 $+ 所有依赖的目标的集合,但是不去重 $% ...
    cendechen阅读 1,351评论 0 0
  • 1.安装 $sudo apt-get install cmake 2.示例:简单的文件目录 sample |—...
    荷包蛋酱阅读 29,863评论 0 15
  • 不知道是不是只有自己有恋夜的爱好,静谧的夜让自己的思绪不再那么跳动.白天和黑夜,自己就像是两个不同的存在,或许白天...
    何以笙箫墨阅读 2,875评论 2 0

友情链接更多精彩内容