有如下的目录结构
main.cpp
func.h:
func.cpp
外层的CMakeLists.txt
#需求的最低cmake程序版本
cmake_minimum_required(VERSION 3.2)
#本工程的名字,- OpenGL.sln
project(OpenGL)
#本工程支持的c++版本
set(CMAKE_CXX_STANDARD 17)
#搜索所有的.cpp,加入SRCS变量中,注意:. 后面是空格
aux_source_directory(. SRCS)
#设置可执行程序输出的目录
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../bin)
#将funcs文件夹纳入到编译系统
add_subdirectory(funcs)
#本工程所有cpp文件编译链接,生成exe
add_executable(glStudy ${SRCS})
#将myfuncs lib链接到glStudy
target_link_libraries(glStudy myfuncs)
funcs文件夹中的CMakeLists.txt
#递归将本文件夹下所有cpp放到FUNCS中
file(GLOB_RECURSE FUNCS ./ *.cpp)
#将FUNCS中所有cpp编译未funcs这个lib库
add_library(myfuncs ${FUNCS})
#设置库文件的输出目录
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../lib)
结果: