在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何在Windows系統(tǒng)中使用VSCode來進行開發(fā)和編譯

IOT物聯(lián)網小鎮(zhèn) ? 來源:IOT物聯(lián)網小鎮(zhèn) ? 作者:道哥 ? 2022-11-21 09:42 ? 次閱讀

這篇文章提供了一個簡潔易懂的 cmake 工程模板,可以滿足一個小團隊的合作開發(fā),無論是在代碼安全性,還是開發(fā)效率上,都能滿足基本的開發(fā)需求。

本文詳細描述了文件結構和操作流程,如何在Linux系統(tǒng)使用命令行來編譯,如何在Windows系統(tǒng)中使用VSCode 和Visual Studio 2019來進行開發(fā)和編譯。

使用這個cmake模板之后,代碼的結構非常的清晰,編譯過程中產生的中間文件也不會污染源代碼。

無論是開發(fā)一些個人項目,或者是在一些小團隊中使用是綽綽有余了。

示例代碼中核心的兩個文件就是:app.cmake和lib.cmake,幾乎每一行都有注釋。

文末有下載鏈接。

文件目錄說明

在團隊開發(fā)工作中,每個人負責不同的模塊。

從代碼保密的角度看,除了項目負責人(或者說項目整合人員)有權限獲取一個項目中的所有代碼之外,每個開發(fā)者通常只擁有自己負責的模塊。

每個開發(fā)者在編譯自己的模塊時,需要把輸出文件(頭文件、庫文件、文檔)等,匯總到一個中央倉庫中,方便整合人員進行集成編譯。

因此,示例代碼如下圖所示:

1db22812-692f-11ed-8abf-dac502259ad0.png

CMakeLists.txt:是最外層的 cmake 文件;

install:是所有模塊編譯結果的安裝目錄,便于項目整合人員集成編譯;

myapp:是一個可執(zhí)行程序的模板;

mymath:是一個動態(tài)鏈接庫的模板;

再來看一下mymath內部的文件組織結構:

1dd3d192-692f-11ed-8abf-dac502259ad0.png

build:存放編譯過程中產生的中間文件,不會污染源代碼。當然了,如果使用 git 來進行版本管理,需要把這個目錄添加到 .gitignore 文件中;

lib.cmake:比較重要的 cmake 文件,這個模板的核心價值就在這個文件中;

source:存放源代碼,并且區(qū)分了 linux 和 windows 系統(tǒng),在不同的系統(tǒng)上編譯,會自動編譯對應目錄下的 C 文件;

include:存放頭文件;

myapp目錄內部結構與mymath幾乎是一樣的,這里就不贅述了。

這兩個模塊的編譯結果會自動輸出到install目錄,如下圖所示:

1df07fc2-692f-11ed-8abf-dac502259ad0.png

在install目錄內:

include:匯總了所有模塊的頭文件;

library:匯總了所有模塊輸出的庫文件;

bin:匯總了所有的可執(zhí)行程序(一些單元測試程序根據自己的需要是否輸出此目錄);

操作:Linux系統(tǒng)下編譯

編譯動態(tài)庫

刪除install下所有文件和目錄,得到一個干凈的目錄。

創(chuàng)建build目錄,存放中間文件:

$ cd demo_cmakemymath
$ mkdir build

編譯

$ cd build
$ cmake ..
$ make

成功編譯后,在install目錄里可以看到編譯的輸出結果:

demo_cmakeinstallincludemymathmymath.h
demo_cmakeinstalllibrarylinuxdebuglibmymath.so

編譯可執(zhí)行文件

$ cd demo_cmakemyapp
$ mkdir build
$ cd build
$ cmake ..
$ make

查看install目錄下的輸出結果:

demo_cmakeinstallinlinuxdebugmyapp

運行可執(zhí)行程序

$ cd demo_cmakeinstallinlinuxdebug
$ ./myapp

執(zhí)行結果如下圖:

1e12d96e-692f-11ed-8abf-dac502259ad0.png

Windows系統(tǒng)中使用VSCode開發(fā)

創(chuàng)建MSVC工程

在VSCode IDE中,通過菜單【File】-【Open Folder】,打開文件夾demo_cmake。

因為demo_cmake目錄下存在一個頂層CMakeLists.txt文件,所以VSCode偵測到之后會自動進行cmake配置,同時會創(chuàng)建目錄build來存放所有的中間文件。

有些VSCode版本會跳出一個提示窗,讓用戶選擇進行cmake配置,如下一步中所示。

執(zhí)行cmake配置

可以同時按下:【ctrl】 + 【shift】 + 【p】,重新進行cmake配置:

1e2ed59c-692f-11ed-8abf-dac502259ad0.png

編譯動態(tài)庫

同時按下【shift】+【F7】,(或者按下VSCode最下方 【Build】右側的編譯目標),彈出窗口:

1e4c2624-692f-11ed-8abf-dac502259ad0.png

查看install目錄中的輸出文件:

demo_cmakeinstalllibrarywindowsdebugmymath.lib
demo_cmakeinstallinwindowsdebugmymath.dll

編譯可執(zhí)行程序

同時按下【shift】+【F7】,選擇編譯myapp。

查看install目錄:

demo_cmakeinstallinwindowsdebugmyapp

雙擊運行可執(zhí)行程序

1e66cefc-692f-11ed-8abf-dac502259ad0.png

Windows只用VS2019來開發(fā)

生成VS2019解決方案

打開命令行窗口: x64 Native Tools Command Prompt for VS 2019

> cd demo_cmake
> md build
> cd build
> cmake ..

輸出如圖:

1e7ce2fa-692f-11ed-8abf-dac502259ad0.png

使用VS2019編譯動態(tài)庫

此時,可以看到解決方案:demo_cmakeuilddemo_cmake.sln。

使用VS2019打開解決方案文件:

1e8fc7e4-692f-11ed-8abf-dac502259ad0.png

在工程mymath上單擊右鍵,選擇【重新生成】,在輸出信息區(qū)可以看到生成了文件:

demo_cmakeinstalllibrarywindowsdebugmymath.lib
demo_cmakeinstallinwindowsdebugmymath.dll

編譯可執(zhí)行程序

在工程myapp上單擊右鍵,選擇【重新生成】。

在輸出信息區(qū)可以看到生成了文件:

demo_cmakeinstallinwindowsdebugmyapp.exe

運行可執(zhí)行程序

1ea8eb0c-692f-11ed-8abf-dac502259ad0.png
------ End ------

我們知道,在Windows平臺上,VS2019只是一個IDE而已,它的底層是調用MSBuild來執(zhí)行編譯動作的。

MSBuild的角色與cmake非常類似,使用起來也比較方便,以后再總結一篇關于MSBuild的模板工程。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux系統(tǒng)

    關注

    4

    文章

    596

    瀏覽量

    27510
  • Windows系統(tǒng)

    關注

    0

    文章

    29

    瀏覽量

    9813
  • vscode
    +關注

    關注

    1

    文章

    157

    瀏覽量

    7857

原文標題:分享一個適合【團隊】開發(fā)的cmake【跨平臺】工程模板

文章出處:【微信號:IOT物聯(lián)網小鎮(zhèn),微信公眾號:IOT物聯(lián)網小鎮(zhèn)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    沒有CySecureTools模塊,如何在Windows操作系統(tǒng)中使用mtb 3.2?

    沒有 CySecureTools 模塊,如何在 Windows 操作系統(tǒng)中使用 mtb 3.2? RDK3 devkit 需要此模塊。
    發(fā)表于 05-31 07:35

    Windows上使用VScode進行編譯LED例程下載,串口下載報錯,如何切換芯片型號?

    Windows上使用VScode進行編譯LED例程下載, 提示A fatal error occurred: This chip is ESP32-C3 not ESP32. Wro
    發(fā)表于 06-21 07:00

    何在VScode里面開發(fā)51程序?

    何在VScode里面開發(fā)51程序?
    發(fā)表于 10-21 07:05

    使用vscode進行開發(fā)

    Project設置項目名選擇芯片類型這樣新建項目完成使用vscode進行開發(fā)使用vscode替代Keil自然是因為Keil中沒有代碼補全
    發(fā)表于 01-10 06:12

    AN0130 AT32使用VSCode開發(fā)

    tasks.json腳本修改上圖中框起來的路徑需要根據實際路徑進行修改。工程使用通過以上配置,現(xiàn)在可以使用VSCode開發(fā)編譯、下載、調試AT32 MCU了。點擊
    發(fā)表于 05-13 20:02

    Windows系統(tǒng)VSCode+pyOCD開發(fā)環(huán)境搭建步驟分享

    Git如果你的Windows系統(tǒng)上還沒有Git,需要安裝Git;如果已經有了,則可以跳過此步驟。當前最新版本下載鏈接安裝過程比較容易,不再贅述。1.6 安裝VSCode如果你的Windows
    發(fā)表于 12-15 15:31

    Windows上使用VScode進行編譯LED例程下載,串口下載報錯如何切換芯片型號?

    Windows上使用VScode進行編譯LED例程下載,提示A fatal error occurred: This chip is ESP32-C3 not ESP32. Wron
    發(fā)表于 02-20 06:30

    何在ARM上使用Clang for Windows進行編譯

    本指南介紹了LLVM12和相關Clang版本中的功能,這些功能有助于開發(fā)人員用于基于Arm的設備。特別是,本指南探討了如何使用本機工具鏈進行編譯適用于Windows on Arm(Wo
    發(fā)表于 08-08 06:56

    何在結構監(jiān)測系統(tǒng)中使用基于memzo的壓電礦車填補電力缺口

    本文檔內容介紹了如何在結構監(jiān)測系統(tǒng)中使用基于memzo的壓電礦車填補電力缺口。
    發(fā)表于 09-17 10:34 ?1次下載
    如<b class='flag-5'>何在</b>結構監(jiān)測<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中使</b>用基于memzo的壓電礦車<b class='flag-5'>來</b>填補電力缺口

    何在Microsoft Visual Studio 2015中使用英特爾C++編譯

    此視頻演示了如何在Microsoft * Visual Studio 2015 *中使用英特爾?C++編譯
    的頭像 發(fā)表于 10-30 06:03 ?6987次閱讀

    ESP32教程之如何在Windows系統(tǒng)上搭建開發(fā)環(huán)境

    本文檔的主要內容詳細介紹的是ESP32教程之如何在Windows系統(tǒng)上搭建開發(fā)環(huán)境。
    發(fā)表于 12-13 15:34 ?40次下載
    ESP32教程之如<b class='flag-5'>何在</b><b class='flag-5'>Windows</b><b class='flag-5'>系統(tǒng)</b>上搭建<b class='flag-5'>開發(fā)</b>環(huán)境

    VSCode搭建STM32單片機開發(fā)環(huán)境

    前言由于之前的學習過程中使用過了VSCode、Source Insight這類強大的代碼編輯器,感覺實在是太好用了。但是最近自己要用到Keil進行STM32單片機的開發(fā),因為使用過了
    發(fā)表于 11-13 11:06 ?15次下載
    <b class='flag-5'>VSCode</b>搭建STM32單片機<b class='flag-5'>開發(fā)</b>環(huán)境

    stm32cubeMX+vscode開發(fā)編譯調試stm32程序

    stm32cubeMX+vscode開發(fā)編譯調試stm32程序安裝vscode安裝make工具安裝交叉編譯工具鏈安裝openocd安裝cla
    發(fā)表于 12-24 19:31 ?6次下載
    stm32cubeMX+<b class='flag-5'>vscode</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>編譯</b>調試stm32程序

    何在vscode上面開發(fā)stm32

    vscode具有強大的代碼編輯功能,自動補全代碼,高亮代碼看起來非常舒服,而Keil雖然也很強大,但是代碼補全沒有vsCode用起來舒服,如果能在vscode上面開發(fā)stm32將會非常
    的頭像 發(fā)表于 10-08 16:32 ?2374次閱讀

    何在Windows中使用MTP協(xié)議

    Windows操作系統(tǒng)中使用MTP(Media Transfer Protocol)協(xié)議主要涉及到與移動設備(如智能手機、平板電腦等)的連接和數據傳輸。MTP是一種用于交換媒體文件(如音樂、視頻
    的頭像 發(fā)表于 01-03 10:26 ?435次閱讀
    主站蜘蛛池模板: 亚洲性人人天天夜夜摸 | 韩国三级理论在线看中文字幕 | 午夜美女影院 | 朋友夫妇和交换性bd高清 | 色性综合 | 国产午夜a理论毛片在线影院 | 国产一级特黄高清免费大片 | 国内精品视频在线 | 五月网址 | 怡红院亚洲怡红院首页 | 国产精品久久久久久久久久妇女 | 欧美精彩狠狠色丁香婷婷 | 一级黄色录像毛片 | 久久精品国产免费看久久精品 | 欧美骚| 欧美怡红院免费全视频 | 国产午夜免费一区二区三区 | 亚洲一一在线 | 轻点灬大ji巴太粗太长了爽文 | 性精品| 欧美性精品videofree | 一个人看的www片免费高清视频 | 97福利 | 综合色婷婷 | 一级看片免费视频 | 国卡一卡二卡三免费网站 | 日韩手机看片 | 欧美视频精品一区二区三区 | 日本成片视频 | www.日日爱 | 最新天堂网 | 老司机午夜永久在线观看 | www.色亚洲| 欧美视频一区二区三区四区 | 国产亚洲欧美成人久久片 | 黄色美女网站免费 | 国产三级观看 | 四虎影院成人在线观看 | 狂野欧美激情性xxxx | 韩国三级理在线视频观看 | 精品伊人久久大香线蕉网站 |