目录结构
CMakeTest/
bin/
libs/
src/
![]()
test.h
![]()
test.cpp
test/
![]()
test1.cpp
CMakeLists.txt
install.sh
main.cpp
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)