C++项目目录结构及CMakeLists.txt编写

目录结构

CMakeTest/
\qquad bin/
\qquad libs/
\qquad src/
\qquad \qquad test.h
\qquad \qquad test.cpp
\qquad test/
\qquad \qquad test1.cpp
\qquad CMakeLists.txt
\qquad install.sh
\qquad main.cpp
\qquad README.md

CMakeList.txt

CMAKE_MINIMUM_REQUIRED(VERSION 3.16)

if (CMAKE_BUILD_TYPE STREQUAL Release) 
     set(PROJECT_NAME cmaketest)
else()
    set(CMAKE_BUILD_TYPE Debug)
    set(PROJECT_NAME cmaketest_d)
endif()
project(${PROJECT_NAME})

set(CMAKE_CXX_FLAGS "-Wall -std=c++14")

# 向环境中添加头文件搜索路径
include_directories(
    "${PROJECT_SOURCE_DIR}/src"
)
# 向环境中添加库文件搜索路径
link_directories(
    "${PROJECT_SOURCE_DIR}/libs"
)

# ${PROJECT_SOURCE_DIR}是当前项目的顶层目录
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRCS) # 将src目录中的文件名用SRCS代替

set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/libs) # 设置库文件输出路径
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) # 设置可执行文件输出路径

# 生成库文件到libs目录
add_library(testlib ${SRCS})
# 生成可执行文件到bin目录
add_executable(${PROJECT_NAME} ${SRCS} main.cpp)
# 生成测试用的可执行文件到bin目录
add_executable(test1  ${PROJECT_SOURCE_DIR}/test/test1.cpp)
target_link_libraries(test1 libtestlib.a)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容