记录一个最简单的CmakeLists.txt的模型
#指定了cmake的最低版本 cmake_minimum_required(VERSION 3.5) #工程名字,自己起的 project(testProject) #判断编译器类型,如果是gcc编译器,则在编译选项中加入c++11支持 if(CMAKE_COMPILER_IS_GNUCXX) set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}") message(STATUS "optional:-std=c++11") endif(CMAKE_COMPILER_IS_GNUCXX) #告诉编译器工程还包含一个子目录function,里面还有一个CmakeList文件,其实也就是告诉编译器先去编译那个子CmakeList文件。 add_subdirectory(function) #头文件目录 include_directories(function) #生成可执行文件main,我们在后面将工程中用到的源文件和头文件列出来 add_executable(main main.cpp) #输出 当前 PROJECT_SOURCE_DIR表示当前目录下 PROJECT_BINARY_DIR表示当前编译目录,一般是build message(STATUS ${PROJECT_SOURCE_DIR}) # 链接库文件,库文件 # 在子文件夹中创建一个CMakeList.txt 写DIR_FUNC_SRCS #将该目录下的所有的源文件名字保存在DIR_FUNC_SRCS中 #aux_source_directory(. DIR_FUNC_SRCS) #生成链接库,名字为funcLib 加SHARED是动态库 #add_library(funcLib ${DIR_FUNC_SRCS}) target_link_libraries(main funcLib)
其他的一些用到的:
SET(CMAKE_CXX_COMPILER "arm-linux-gnueabihf-g++")
SET(CMAKE_C_COMPILER "arm-linux-gnueabihf-gcc")
aux_source_directory(${PROJECT_SOURCE_DIR}/share DIR_SHARE)
add_executable(exec ${DIR_SHARE})

浙公网安备 33010602011771号