使用VS2022開發(fā)在線遠(yuǎn)程編譯部署的C++程序(圖文詳解)
一、先來一點(diǎn)C++的資源分享,意思一下。
1、c++類庫源碼以及其他有關(guān)資源。站點(diǎn)是英文的,英文不好的話可以谷歌瀏覽器在線翻譯。http://www.cplusplus.com/
2、C++參考手冊。頁面有點(diǎn)復(fù)古,不過有中文版本的。https://zh.cppreference.com/w/cpp
3、GUNC++庫,你懂的。https://gcc.gnu.org/onlinedocs/libstdc++/index.html
4、一群大佬分享的一些中文開源資源。https://github.com/jobbole/awesome-cpp-cn
二、接下來是過渡,說點(diǎn)題外話,純屬發(fā)牢騷,可以直接跳過去看第三節(jié)。
C/C++大概我有五六年沒玩了,基本上忘了差不多。主要是入了C#這個坑(比C++多了倆+號)。剛好最近幾天在休年假,今天(2021-12-15)略感有點(diǎn)無趣,于是下午就想著擼一下C++,試試手感,但是很久以前的VisualC++6.0這種古老的編譯器肯定不太合適了,于是最開始想到了VisualStudioCode。于是先下載了MinGW,下載地址是:https://sourceforge.net/projects/mingw/
5、安裝MinGW以后,把以下全部勾選上。如果遇到不曉得是干嘛的選項(xiàng),一般默認(rèn)也勾上,可以減少錯誤的概率。
6、MinGW安裝以后,需要把安裝根目錄下的bin目錄,加到環(huán)境變量的Path里面,這樣控制臺或者PowerShell里面就可以直接使用gcc或者g++命令進(jìn)行編譯了(使用編譯器直接跑也可以,但是寫命令感覺比較騷一點(diǎn))。
Cmd命令行輸入gcc-v或g++-v可以顯示版本信息那些,就說明是OK的了。
7、再然后是VSCODE上面安裝了C++語言環(huán)境,我安裝了以下圈起來的那些。
8、然后最下面那個安裝以后,可以配置運(yùn)行按鈕。不過我本地沒配好,退而求其次,使用了VSCODE右上角的那個三角形來運(yùn)行。
9、如下,點(diǎn)擊既可編譯運(yùn)行。如果是多個文件路徑,還需要自行配置進(jìn)行鏈接起來。
10、同時(shí)也支持在terminal窗口使用命令進(jìn)行編譯。編譯以后默認(rèn)會生成a.exe文件,如果需要生成指定名稱的文件,可以使用g++xxx.cpp指定的名稱來實(shí)現(xiàn)。
到以上步驟以后,總感覺有點(diǎn)怪怪的,可能是VSCODE我還是更喜歡用來開發(fā)一些例如golang、或者前端等的東西比較上手。開發(fā)C++總感覺不太上手,也不曉得怎么跨平臺發(fā)布(實(shí)力有限,搞不定)。于是,我最終換成了VisualStudio2022這個宇宙最強(qiáng)IDE來進(jìn)行跨平臺的開發(fā)。
三、以下開始是正文,使用VS2022 開發(fā)遠(yuǎn)程跨平臺的C++程序。
11、首先,我之前申請了一個TX云服務(wù)器(CentOS8.0系統(tǒng)),這下算是派上用場了。先遠(yuǎn)程過去下點(diǎn)東西。遠(yuǎn)程linux控制臺的命令是ssh用戶名@ip地址
12、遠(yuǎn)程過去以后,需要安裝sshserver。命令:yuminstall-yopensslopenssh-server。安裝它的作用是讓它可以被VS2022編譯器遠(yuǎn)程訪問到。
13、進(jìn)入到ssh的配置文件下做些修改。修改文件:/etc/ssh/sshd_config
14、更改一些信息,將PermitRootLogin,RSAAuthentication,PubkeyAuthentication的注釋打開并且設(shè)置為yes。如果沒有找到對應(yīng)的,也可以直接新增。
15、啟動sshd服務(wù),并且設(shè)置為開機(jī)啟動。命令分別是:
systemctlstartsshd.service
systemctlenablesshd.service
16、然后安裝gdb服務(wù)。安裝命令:yum-yinstallgdbgdb-gdbserver
gdb是linux下常用的調(diào)試器,不安裝可能導(dǎo)致編譯失敗或者沒法編譯。
17、然后是安裝g++工具,先檢查下g++有沒有安裝。有些linux系統(tǒng)可能會自帶gcc和g++,沒有自帶咱們就自己安裝個好了。
18、通過命令安裝gcc和g++。安裝命令:
sudoyum-yinstallgccgcc-c++kernel-devel
19、安裝完畢以后,查看g++版本。顯示版本號就代表安裝成功了,和在Windows上安裝MinGW以后的類似。不過此處的版本是4.x,和win上面的版本對比下貌似老了點(diǎn),不過暫時(shí)不影響,如果不適用C++的新特性應(yīng)該問題不大。如果需要使用一些新特性,就需要獨(dú)立安裝高版本的g++工具了,這個大佬們可以自行研究。
20、接下來做個實(shí)驗(yàn)。首先要對VS2022做一點(diǎn)配置。配置一個可以提供遠(yuǎn)程訪問的東西。工具-選項(xiàng)-跨平臺-連接管理器里面,添加一個遠(yuǎn)程訪問的連接。
主機(jī)名=ip地址;端口默認(rèn)22
21、設(shè)置完成以后。就可以開始寫代碼測試了。先使用VS2022新建一個c++項(xiàng)目。此處我使用的是控制臺項(xiàng)目。
22、一些配置,在項(xiàng)目的右鍵屬性里面,可以看到配置的遠(yuǎn)程連接地址被加進(jìn)去了。并且在遠(yuǎn)程根目錄下,設(shè)置了一個文件夾,叫cpp_projects,設(shè)置以后,編譯以后的代碼和文件都會被丟到這個文件夾下。
23、執(zhí)行程序的地方,默認(rèn)也會出現(xiàn)上面配置的遠(yuǎn)程Linux服務(wù)器的IP地址。
24、執(zhí)行程序,由于沒有斷電或其他中斷操作,所以執(zhí)行以后成功的話,會直接變回還沒有啟動的樣子。但是此時(shí),運(yùn)行完畢以后(編譯完畢以后),會發(fā)現(xiàn)剛才配置的文件夾確實(shí)出現(xiàn)在了根目錄下。咱們可以在對應(yīng)的debug里面進(jìn)行直接運(yùn)行該程序,打印出了咱們在VS2022上面開發(fā)的打印內(nèi)容。
25、增加頭文件試一下效果,把頭部信息丟到hello.h里面。
26、同時(shí)新增了控制臺輸入,用來測試輸入,通過指針輸出出來。然后運(yùn)行程序。運(yùn)行成功,會顯示部署成功字樣,不過一閃而過,容易忽略。
27、遠(yuǎn)程linux系統(tǒng)上面,試一下效果。
28、瞅一下編譯生成的中間文件,Obj文件夾下的xxx.o文件,貌似有點(diǎn)尷尬,亂碼了,那就不科普了,大佬們自行玩玩。
29、同樣的,在linux系統(tǒng)上面,也可以使用g++命令進(jìn)行編譯。因?yàn)榇a會被自動遠(yuǎn)程拷貝過來,所以也可以直接在這上面編譯和運(yùn)行。
30、上面代碼帶有輸入語句,所以控制臺會被中斷進(jìn)行停留,此刻還可以在VS上面看到遠(yuǎn)程調(diào)用Linux控制臺窗口的輸出。不過只要中斷沒了,就立馬程序也就執(zhí)行完了。
以上就是本篇文章的全部內(nèi)容,感謝大佬們的圍觀。
到此這篇關(guān)于使用VS2022開發(fā)在線遠(yuǎn)程編譯部署的C++程序(圖文詳解)的文章就介紹到這了,更多相關(guān)VS2022在線遠(yuǎn)程編譯部署C++程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c++ 預(yù)處理之正整型實(shí)現(xiàn)方法
這篇文章主要介紹了c++ 預(yù)處理之正整型實(shí)現(xiàn)方法,需要的朋友可以參考下2017-07-07C++?通過pqxxlib庫鏈接?PostgreSql數(shù)據(jù)庫的詳細(xì)過程
這篇文章主要介紹了C++?通過pqxxlib庫鏈接?PostgreSql數(shù)據(jù)庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04使用VS Code的開發(fā)環(huán)境配置教程圖文詳解
這篇文章主要介紹了使用VS Code的開發(fā)環(huán)境配置教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05C語言的動態(tài)內(nèi)存分配及動態(tài)內(nèi)存分配函數(shù)詳解
這篇文章主要為大家詳細(xì)介紹了C語言的動態(tài)內(nèi)存分配及動態(tài)內(nèi)存分配函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03C語言中數(shù)據(jù)結(jié)構(gòu)之鏈表歸并排序?qū)嵗a
這篇文章主要介紹了C語言中數(shù)據(jù)結(jié)構(gòu)之鏈表歸并排序?qū)嵗a的相關(guān)資料,需要的朋友可以參考下2017-05-05函數(shù)指針與指針函數(shù)的學(xué)習(xí)總結(jié)
函數(shù)指針是指向函數(shù)的指針,指針函數(shù)是指一個函數(shù)的返回值是一個指針。以下就是對函數(shù)指針與指針函數(shù)的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下2013-07-07