Makefile 编写

2018-04-13  本文已影响20人  that_is_this

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

上一篇下一篇

猜你喜欢

热点阅读