18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Windows系統(tǒng)中使用VSCode來(lái)進(jìn)行開(kāi)發(fā)和編譯

IOT物聯(lián)網(wǎng)小鎮(zhèn) ? 來(lái)源:IOT物聯(lián)網(wǎng)小鎮(zhèn) ? 作者:道哥 ? 2022-11-21 09:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

本文詳細(xì)描述了文件結(jié)構(gòu)和操作流程,如何在Linux系統(tǒng)使用命令行來(lái)編譯,如何在Windows系統(tǒng)中使用VSCode 和Visual Studio 2019來(lái)進(jìn)行開(kāi)發(fā)和編譯。

使用這個(gè)cmake模板之后,代碼的結(jié)構(gòu)非常的清晰,編譯過(guò)程中產(chǎn)生的中間文件也不會(huì)污染源代碼。

無(wú)論是開(kāi)發(fā)一些個(gè)人項(xiàng)目,或者是在一些小團(tuán)隊(duì)中使用是綽綽有余了。

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

文末有下載鏈接。

文件目錄說(shuō)明

在團(tuán)隊(duì)開(kāi)發(fā)工作中,每個(gè)人負(fù)責(zé)不同的模塊。

從代碼保密的角度看,除了項(xiàng)目負(fù)責(zé)人(或者說(shuō)項(xiàng)目整合人員)有權(quán)限獲取一個(gè)項(xiàng)目中的所有代碼之外,每個(gè)開(kāi)發(fā)者通常只擁有自己負(fù)責(zé)的模塊。

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

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

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

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

install:是所有模塊編譯結(jié)果的安裝目錄,便于項(xiàng)目整合人員集成編譯;

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

mymath:是一個(gè)動(dòng)態(tài)鏈接庫(kù)的模板;

再來(lái)看一下mymath內(nèi)部的文件組織結(jié)構(gòu):

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

build:存放編譯過(guò)程中產(chǎn)生的中間文件,不會(huì)污染源代碼。當(dāng)然了,如果使用 git 來(lái)進(jìn)行版本管理,需要把這個(gè)目錄添加到 .gitignore 文件中;

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

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

include:存放頭文件;

myapp目錄內(nèi)部結(jié)構(gòu)與mymath幾乎是一樣的,這里就不贅述了。

這兩個(gè)模塊的編譯結(jié)果會(huì)自動(dòng)輸出到install目錄,如下圖所示:

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

在install目錄內(nèi):

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

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

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

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

編譯動(dòng)態(tài)庫(kù)

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

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

$ cd demo_cmakemymath
$ mkdir build

編譯

$ cd build
$ cmake ..
$ make

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

demo_cmakeinstallincludemymathmymath.h
demo_cmakeinstalllibrarylinuxdebuglibmymath.so

編譯可執(zhí)行文件

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

查看install目錄下的輸出結(jié)果:

demo_cmakeinstallinlinuxdebugmyapp

運(yùn)行可執(zhí)行程序

$ cd demo_cmakeinstallinlinuxdebug
$ ./myapp

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

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

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

創(chuàng)建MSVC工程

在VSCode IDE中,通過(guò)菜單【File】-【Open Folder】,打開(kāi)文件夾demo_cmake。

因?yàn)閐emo_cmake目錄下存在一個(gè)頂層CMakeLists.txt文件,所以VSCode偵測(cè)到之后會(huì)自動(dòng)進(jìn)行cmake配置,同時(shí)會(huì)創(chuàng)建目錄build來(lái)存放所有的中間文件。

有些VSCode版本會(huì)跳出一個(gè)提示窗,讓用戶選擇進(jìn)行cmake配置,如下一步中所示。

執(zhí)行cmake配置

可以同時(shí)按下:【ctrl】 + 【shift】 + 【p】,重新進(jìn)行cmake配置:

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

編譯動(dòng)態(tài)庫(kù)

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

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

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

demo_cmakeinstalllibrarywindowsdebugmymath.lib
demo_cmakeinstallinwindowsdebugmymath.dll

編譯可執(zhí)行程序

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

查看install目錄:

demo_cmakeinstallinwindowsdebugmyapp

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

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

Windows只用VS2019來(lái)開(kāi)發(fā)

生成VS2019解決方案

打開(kāi)命令行窗口: x64 Native Tools Command Prompt for VS 2019

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

輸出如圖:

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

使用VS2019編譯動(dòng)態(tài)庫(kù)

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

使用VS2019打開(kāi)解決方案文件:

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

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

demo_cmakeinstalllibrarywindowsdebugmymath.lib
demo_cmakeinstallinwindowsdebugmymath.dll

編譯可執(zhí)行程序

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

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

demo_cmakeinstallinwindowsdebugmyapp.exe

運(yùn)行可執(zhí)行程序

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

我們知道,在Windows平臺(tái)上,VS2019只是一個(gè)IDE而已,它的底層是調(diào)用MSBuild來(lái)執(zhí)行編譯動(dòng)作的。

MSBuild的角色與cmake非常類(lèi)似,使用起來(lái)也比較方便,以后再總結(jié)一篇關(guān)于MSBuild的模板工程。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux系統(tǒng)
    +關(guān)注

    關(guān)注

    4

    文章

    608

    瀏覽量

    29501
  • Windows系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    10104
  • vscode
    +關(guān)注

    關(guān)注

    1

    文章

    169

    瀏覽量

    8914

原文標(biāo)題:分享一個(gè)適合【團(tuán)隊(duì)】開(kāi)發(fā)的cmake【跨平臺(tái)】工程模板

文章出處:【微信號(hào):IOT物聯(lián)網(wǎng)小鎮(zhèn),微信公眾號(hào):IOT物聯(lián)網(wǎng)小鎮(zhèn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    Windows上使用VScode進(jìn)行編譯LED例程下載,串口下載報(bào)錯(cuò),如何切換芯片型號(hào)?

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

    使用vscode進(jìn)行開(kāi)發(fā)

    Project設(shè)置項(xiàng)目名選擇芯片類(lèi)型這樣新建項(xiàng)目完成使用vscode進(jìn)行開(kāi)發(fā)使用vscode來(lái)替代Keil自然是因?yàn)镵eil中沒(méi)有代碼補(bǔ)全
    發(fā)表于 01-10 06:12

    AN0130 AT32使用VSCode開(kāi)發(fā)

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

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

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

    Windows上使用VScode進(jìn)行編譯LED例程下載,串口下載報(bào)錯(cuò)如何切換芯片型號(hào)?

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

    何在ARM上使用Clang for Windows進(jìn)行編譯

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

    何在結(jié)構(gòu)監(jiān)測(cè)系統(tǒng)中使用基于memzo的壓電礦車(chē)來(lái)填補(bǔ)電力缺口

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

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

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

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是ESP32教程之如何在Windows系統(tǒng)上搭建開(kāi)發(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'>開(kāi)發(fā)</b>環(huán)境

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

    前言由于之前的學(xué)習(xí)過(guò)程中使用過(guò)了VSCode、Source Insight這類(lèi)強(qiáng)大的代碼編輯器,感覺(jué)實(shí)在是太好用了。但是最近自己要用到Keil進(jìn)行STM32單片機(jī)的開(kāi)發(fā),因?yàn)槭褂眠^(guò)了
    發(fā)表于 11-13 11:06 ?15次下載
    <b class='flag-5'>VSCode</b>搭建STM32單片機(jī)<b class='flag-5'>開(kāi)發(fā)</b>環(huán)境

    stm32cubeMX+vscode開(kāi)發(fā)編譯調(diào)試stm32程序

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

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

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

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

    Windows操作系統(tǒng)中使用MTP(Media Transfer Protocol)協(xié)議主要涉及到與移動(dòng)設(shè)備(如智能手機(jī)、平板電腦等)的連接和數(shù)據(jù)傳輸。MTP是一種用于交換媒體文件(如音樂(lè)、視頻
    的頭像 發(fā)表于 01-03 10:26 ?3990次閱讀

    不借助Linux系統(tǒng),在Windows下如何搭建ZMC900E交叉編譯環(huán)境

    不需要依賴笨重的虛擬機(jī),也不需要安裝雙系統(tǒng)。拋開(kāi)繁瑣的環(huán)境準(zhǔn)備,在Windows上輕松搭建交叉編譯環(huán)境。本文將介紹如何在Windows上搭建
    的頭像 發(fā)表于 05-21 11:34 ?542次閱讀
    不借助Linux<b class='flag-5'>系統(tǒng)</b>,在<b class='flag-5'>Windows</b>下如何搭建ZMC900E交叉<b class='flag-5'>編譯</b>環(huán)境