有如下的工代码:
可见bin里面没有任务文件
修改主CMakeLists.txt
#需求的最低cmake程序版本
cmake_minimum_required(VERSION 3.2)#本工程的名字,- OpenGL.sln
project(OpenGL)#本工程支持的c++版本
set(CMAKE_CXX_STANDARD 17)#把需要拷贝的资源路径都放到ASSETS里
file(GLOB ASSETS "./assets" "thirdParty/glog/glog.dll")#把ASSETS指代的目录集合的内容,都拷贝到可执行文件目录下
file(COPY ${ASSETS} DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/../bin)#搜索所有的.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)
CTRL + S保存主CMakeLists.txt
从结果可以看出,将我们需要的资源,自动拷贝到exe执行目录了