记录一个最简单的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})

 

posted @   层楼  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示