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的文件中。當(dāng)CMakeLists.txt文件確定后,可以用ccmake命令對相關(guān) 的變量值進(jìn)行配置。這個命令必須指向CMakeLists.txt所在的目錄。配置完成之后,應(yīng)用cmake命令生成相應(yīng)的makefile(在Unix like系統(tǒng)下)或者 project文件(指定用window下的相應(yīng)編程工具編譯時)。
其基本操作流程為:
$> ccmake directory
$> cmake directory
$> make
其中directory為CMakeList.txt所在目錄;
第一條語句用于配置編譯選項(xiàng),如VTK_DIR目錄 ,一般這一步不需要配置,直接執(zhí)行第二條語句即可,但當(dāng)出現(xiàn)錯誤時,這里就需要認(rèn)為配置了,這一步才真正派上用場;
第二條命令用于根據(jù)CMakeLists.txt生成Makefile文件;
第三條命令用于執(zhí)行Makefile文件,編譯程序,生成可執(zhí)行文件;
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
有時間再弄