记录一个最简单的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})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~