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

WeskyNet發表於2021-12-15

 

前言: 

今天沒有前言。

 

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

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

 

 

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

 

 

 

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

 

 

 

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

 

 

 

 

 

 

 

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

 

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

 

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

 

 

 

 

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

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

 

 

 

 

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

 

 

 

 

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

 

 

 

 

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

 

 

 

 

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

 

  

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

 

 

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

 

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

 

 

 

 

 

 

12、遠端過去以後,需要安裝ssh server。命令:yum install -y openssl openssh-server。安裝它的作用是讓它可以被VS 2022編譯器遠端訪問到。

 

 

 

 

 

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

 

 

 

 

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

 

 

 

 

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

systemctl start sshd.service

systemctl enable sshd.service

 

 

 

 

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

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

 

 

 

 

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

 

 

 

 

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

sudo yum -y install gcc gcc-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控制檯視窗的輸出。不過只要中斷沒了,就立馬程式也就執行完了。

 

 

 

 

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

 

 

相關文章