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