Ubuntu下使用vscode进行C/C++开发:进阶篇

本文介绍了在Ubuntu环境下使用Visual Studio Code进行C/C++开发的高级技巧,包括利用CMake生成及提取库文件、结合find_package便捷调用、以及如何在launch.json和tasks.json中配置实现代码开发、库生成及验证的无缝切换。通过这些步骤,开发者可以高效地进行C/C++项目开发和测试。
摘要由CSDN通过智能技术生成

       在vscode上进行C/C++开发的进阶需求:

                1) 编写及调试源码时,可进行断点调试、可跨文件及文件夹进行函数调用。

                2) 可生成库及自动提取对应的头文件和库文件。

                3) 可基于当前工程资源一键点击验证所提取的库文件的正确性。

                4) 可结合find_package实现方便的调用。

        对于第一个需求,可参考上篇博客Ubuntu下使用vscode进行C/C++开发:基础篇,完成代码的开发及测试,本章将主要记录后两个需求的实现:生成及提取库文件并基于当前项目资源对库进行验证。这里将结合CMake实现,具体步骤如下:

       1. 配置CMake文件。 

       这里实现了:

                1)将头文件和库文件提取到了指定的路径(CMAKE_INSTALL_PREFIX)。

                2)生成了相应的xxxCofig.cmake文件,后续可以结合find_package对该库实现简便的调用。

        具体CmakeLists.txt如下,注意:在使用时,根据自己的项目进行路径、工程名等的修改。

cmake_minimum_required(VERSION 3.2)
project(test_debug_2)

SET(CMAKE_INSTALL_PREFIX ${PROJECT_SOURCE_DIR}/install)

aux_source_directory(./src test_SRCS)
add_library(${PROJECT_NAME} ${test_SRCS})
target_include_directories (${PROJECT_NAME} PUBLIC 
     $<INSTALL_INTERFACE:include>
     $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
)

include(GNUInstallDirs)
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}
  RUNTIME
    DESTINATION ${CMAKE_INSTALL_BINDIR}
    COMPONENT ${PROJECT_NAME}_Runtime
  LIBRARY
    DESTINATION ${CMAKE_INSTALL_LIBDIR}
    NAMELINK_SKIP
    COMPONENT ${PROJECT_NAME}_Runtime
  ARCHIVE
    DESTINATION ${CMAKE_INSTALL_LIBDIR}
    COMPONENT ${PROJECT_NAME}_Development
)

install (
    DIRECTORY ${CMAKE_SOURCE_DIR}/include/
    DESTINATION include
    FILES_MATCHING PATTERN "*.h")

install(EXPORT ${PROJECT_NAME}
	FILE ${PROJECT_NAME}Config.cmake
	DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})

       在依次进行如下左侧的命令行之后,最终生成了如右侧所示的库文件结构。至此,已可完成库的生成及库文件的提取。

                                         

      2. 在当前项目上的测试

        主要是将需求1中所需要的“头文件和源文件”配置与需求3所需要的“头文件和库”加载区分开来。以tasks.json的方式展开,如下图所示,存在注释【1】和注释【2】相关的冲突:注释【1】及其后两行代码是满足跨文件、文件夹进行函数调用及断点调试时的配置,注释【2】及其后两行代码是则是满足对该工程所生成的库的相应加载及运行测试。正常的编译、运行需要区分两者,并且只需要其中一个有效。

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活动文件",
            "command": "/usr/bin/g++",
            "arg
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值