Windows配置VSCode+CMake+Ninja+Boost.Test的C++开发环境(教程详解)

2020-05-12 11:57:48于海丽

CMakeLists.txt

这个CMake脚本也是跨平台的,自动识别Linux或Windows,然后执行相应的链接。

cmake_minimum_required (VERSION 3.5)
project(leetcode)

set(PROBLEM_NAME "349-Intersection-of-Two-Arrays-set")

set(CMAKE_CXX_STANDARD 14)

set(SOLUTION_SOURCES ${PROJECT_SOURCE_DIR}/${PROBLEM_NAME}/solution.cpp)
add_library(solution STATIC ${SOLUTION_SOURCES})

enable_testing()

set(TEST_SOURCES ${PROJECT_SOURCE_DIR}/${PROBLEM_NAME}/solution_test.cpp)
set(TEST_LIBS solution)

add_executable(test_main ${TEST_SOURCES})

if(WIN32)
 message(STATUS "Detected Windows platform")
 set(BOOST_ROOT E:dev-libboost_1_73_0)
 set(BOOST_LIBRARYDIR E:dev-libboost_1_73_0buildlib)
 set(Boost_USE_STATIC_LIBS ON)
 find_package(Boost REQUIRED COMPONENTS unit_test_framework)

 target_link_libraries(test_main PRIVATE ${TEST_LIBS} Boost::boost Boost::unit_test_framework)
elseif(UNIX)
 message(STATUS "Detected UNIX platform")
 find_package(Boost REQUIRED COMPONENTS unit_test_framework)
 add_library(boost_unit_test_framework STATIC IMPORTED)
 set_target_properties(boost_unit_test_framework PROPERTIES
 IMPORTED_LOCATION /usr/lib/libboost_unit_test_framework.a)

 target_link_libraries(test_main ${TEST_LIBS} boost_unit_test_framework)
else()
 message(FATAL_ERROR "Unsupported platform")
endif()

add_test(solution_test test_main COMMAND test_main)

编译、测试和调试

按快捷键 Ctrl + Shift + P ,然后就可以输入我们之前定义的不同命令了:

“CMake: Configure” – 配置CMake “CMake: Build” – 编译项目 “CMake: Run tests” – 执行测试 “Tasks: Run task -> MSVC configure” – 以调用Task的方式配置CMake

单元测试的效果如下图所示:

调试的效果如下图所示:

完整的项目代码在我的GitHub上: https://github.com/johnhany/leetcode  。关于Linux平台下C++开发环境的配置可以参考 《Ubuntu计算机视觉开发环境配置(Python/C++)》 。

总结

到此这篇关于Windows配置VSCode+CMake+Ninja+Boost.Test的C++开发环境(教程详解)的文章就介绍到这了,更多相关VScode配置C/C++环境内容请搜索易采站长站以前的文章或继续浏览下面的相关文章希望大家以后多多支持易采站长站!