1. 程式人生 > 其它 >【C++】使用VS2022開發可以線上遠端編譯部署的C++程式

【C++】使用VS2022開發可以線上遠端編譯部署的C++程式

前言:

今天沒有前言。

一、先來一點C++的資源分享,意思一下。

1、c++類庫原始碼以及其他有關資源。站點是英文的,英文不好的話可以谷歌瀏覽器線上翻譯。http://www.cplusplus.com/

2、C++參考手冊。頁面有點復古,不過有中文版本的。https://zh.cppreference.com/w/cpp

3、GUNC++庫,你懂的。https://gcc.gnu.org/onlinedocs/libstdc++/index.html

4、一群大佬分享的一些中文開源資源。https://github.com/jobbole/awesome-cpp-cn

二、接下來是過渡,說點題外話,純屬發牢騷,可以直接跳過去看第三節。

C/C++大概我有五六年沒玩了,基本上忘了差不多。主要是入了C#這個坑(比C++多了倆+號)。剛好最近幾天在休年假,今天(2021-12-15)略感有點無趣,於是下午就想著擼一下C++,試試手感,但是很久以前的VisualC++6.0這種古老的編譯器肯定不太合適了,於是最開始想到了VisualStudioCode。於是先下載了MinGW,下載地址是:https://sourceforge.net/projects/mingw/

5、安裝MinGW以後,把以下全部勾選上。如果遇到不曉得是幹嘛的選項,一般預設也勾上,可以減少錯誤的概率。

6、MinGW安裝以後,需要把安裝根目錄下的bin目錄,加到環境變數的Path裡面,這樣控制檯或者PowerShell裡面就可以直接使用gcc或者g++命令進行編譯了(使用編譯器直接跑也可以,但是寫命令感覺比較騷一點)。

Cmd命令列輸入gcc-v或g++-v可以顯示版本資訊那些,就說明是OK的了。

7、再然後是VSCODE上面安裝了C++語言環境,我安裝了以下圈起來的那些。

8、然後最下面那個安裝以後,可以配置執行按鈕。不過我本地沒配好,退而求其次,使用了VSCODE右上角的那個三角形來執行。

9、如下,點選既可編譯執行。如果是多個檔案路徑,還需要自行配置進行連結起來。

10、同時也支援在terminal視窗使用命令進行編譯。編譯以後預設會生成a.exe檔案,如果需要生成指定名稱的檔案,可以使用g++xxx.cpp指定的名稱來實現。

到以上步驟以後,總感覺有點怪怪的,可能是VSCODE我還是更喜歡用來開發一些例如golang、或者前端等的東西比較上手。開發C++總感覺不太上手,也不曉得怎麼跨平臺釋出(實力有限,搞不定)。於是,我最終換成了VisualStudio2022這個宇宙最強IDE來進行跨平臺的開發。

三、以下開始是正文,使用VS2022 開發遠端跨平臺的C++程式。

11、首先,我之前申請了一個TX雲伺服器(CentOS8.0系統),這下算是派上用場了。先遠端過去下點東西。遠端linux控制檯的命令是ssh使用者名稱@ip地址

12、遠端過去以後,需要安裝sshserver。命令:yuminstall-yopensslopenssh-server。安裝它的作用是讓它可以被VS2022編譯器遠端訪問到。

13、進入到ssh的配置檔案下做些修改。修改檔案:/etc/ssh/sshd_config

14、更改一些資訊,將PermitRootLogin,RSAAuthentication,PubkeyAuthentication的註釋開啟並且設定為yes。如果沒有找到對應的,也可以直接新增。

15、啟動sshd服務,並且設定為開機啟動。命令分別是:

systemctlstartsshd.service

systemctlenablesshd.service

16、然後安裝gdb服務。安裝命令:yum-yinstallgdbgdb-gdbserver

gdb是linux下常用的偵錯程式,不安裝可能導致編譯失敗或者沒法編譯。

17、然後是安裝g++工具,先檢查下g++有沒有安裝。有些linux系統可能會自帶gcc和g++,沒有自帶咱們就自己安裝個好了。

18、通過命令安裝gcc和g++。安裝命令:

sudoyum-yinstallgccgcc-c++kernel-devel

19、安裝完畢以後,檢視g++版本。顯示版本號就代表安裝成功了,和在Windows上安裝MinGW以後的類似。不過此處的版本是4.x,和win上面的版本對比下貌似老了點,不過暫時不影響,如果不適用C++的新特性應該問題不大。如果需要使用一些新特性,就需要獨立安裝高版本的g++工具了,這個大佬們可以自行研究。

20、接下來做個實驗。首先要對VS2022做一點配置。配置一個可以提供遠端訪問的東西。工具-選項-跨平臺-連線管理器裡面,新增一個遠端訪問的連線。

主機名=ip地址;埠預設22

21、設定完成以後。就可以開始寫程式碼測試了。先使用VS2022新建一個c++專案。此處我使用的是控制檯專案。

22、一些配置,在專案的右鍵屬性裡面,可以看到配置的遠端連線地址被加進去了。並且在遠端根目錄下,設定了一個資料夾,叫cpp_projects,設定以後,編譯以後的程式碼和檔案都會被丟到這個資料夾下。

23、執行程式的地方,預設也會出現上面配置的遠端Linux伺服器的IP地址。

24、執行程式,由於沒有斷電或其他中斷操作,所以執行以後成功的話,會直接變回還沒有啟動的樣子。但是此時,執行完畢以後(編譯完畢以後),會發現剛才配置的資料夾確實出現在了根目錄下。咱們可以在對應的debug裡面進行直接執行該程式,打印出了咱們在VS2022上面開發的列印內容。

25、增加標頭檔案試一下效果,把頭部資訊丟到hello.h裡面。

26、同時新增了控制檯輸入,用來測試輸入,通過指標輸出出來。然後執行程式。執行成功,會顯示部署成功字樣,不過一閃而過,容易忽略。

27、遠端linux系統上面,試一下效果。

28、瞅一下編譯生成的中間檔案,Obj資料夾下的xxx.o檔案,貌似有點尷尬,亂碼了,那就不科普了,大佬們自行玩玩。

29、同樣的,在linux系統上面,也可以使用g++命令進行編譯。因為程式碼會被自動遠端拷貝過來,所以也可以直接在這上面編譯和執行。

30、上面程式碼帶有輸入語句,所以控制檯會被中斷進行停留,此刻還可以在VS上面看到遠端呼叫Linux控制檯視窗的輸出。不過只要中斷沒了,就立馬程式也就執行完了。

以上就是本篇文章的全部內容,感謝大佬們的圍觀。

歡迎加入QQ群: 群號:1079830632