原創(chuàng),轉(zhuǎn)載請(qǐng)申明
宇宙第一IDE以前沒辦法用在linux程序先,現(xiàn)在不僅能在python上調(diào)試也能調(diào)試linux程序楔绞。
- 1.VS安裝
- 2.SSH
- 3.創(chuàng)建linux工程
- 4.頭文件
- 5.連接庫
1.VS安裝
這里我就不詳細(xì)說了纺蛆,網(wǎng)上都有安裝時(shí)候把linux組件選上就好了。
2.SSH
SSH 為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議涝登。SSH 是目前較可靠,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用 SSH 協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題晰骑。SSH最初是UNIX系統(tǒng)上的一個(gè)程序,后來又迅速擴(kuò)展到其他操作平臺(tái)绊序。SSH在正確使用時(shí)可彌補(bǔ)網(wǎng)絡(luò)中的漏洞硕舆。SSH客戶端適用于多種平臺(tái)。幾乎所有UNIX平臺(tái)—包括HP-UX政模、Linux岗宣、AIX、Solaris淋样、Digital UNIX耗式、Irix,以及其他平臺(tái),都可運(yùn)行SSH刊咳。
linux console window下
sudo apt-get install ssh
默認(rèn)端口為22彪见,可以修改。
3.創(chuàng)建linux工程
Setting up your project for Linux Development
With this workload you can author C++ code for Linux servers, desktops and devices. You can manage your connections to these machines from within VS. VS will automatically copy and remotely build your sources and can launch your application with the debugger. Our project system supports targeting specific architectures, including ARM.
Adding and removing connections
To add a new connection, go to Tools > Options and search for Connection, Connection Manager will be under Cross Platform. From here you can add and remove connections.
To change which connection a project is using go to the project properties general settings and update the Remote Build Machine option.
Project Properties
All of the options necessary to control C++ compilation are exposed on the project properies pages. We'll cover a few specific to how things work for Linux. First under general settings, you will see the remote root is set to ~/projects/ by default and that we are setting the remote project directory to match our project name in that location.
4.頭文件
- 目標(biāo)機(jī)上gcc娱挨、g++余指、gdb一定要安裝
- linux引用的頭文件需要手動(dòng)復(fù)制到$:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\Linux\include\usr路徑下,尤其是特殊的項(xiàng)目引用頭文件
- 包含目錄最好在(項(xiàng)目右鍵->屬性->c/c++->常規(guī)->附加包含目錄)
- 自定義庫包含目錄一定要在(項(xiàng)目右鍵->屬性->鏈接器->常規(guī)->附加庫目錄)里面添加跷坝,(vc++目錄沒有用)
- gdb調(diào)試項(xiàng)目在復(fù)制到linux時(shí)是ssh登錄用戶下的目錄酵镜,如果沒有設(shè)置絕對(duì)路徑
- vs2017生成時(shí)都需要目標(biāo)機(jī)的支持,否則會(huì)有g(shù)++的編譯錯(cuò)誤
5.鏈接庫
- 遠(yuǎn)程調(diào)試Linux的話柴钻,動(dòng)態(tài)庫libxxx.so和靜態(tài)庫xxx.a都是在[鏈接器->輸入]里配置
例如libopencv_core.so,連接器輸入時(shí)只要填寫opencv_core - 靜態(tài)庫如果是在Linux環(huán)境下淮韭,就要在項(xiàng)目屬性中:鏈接器->常規(guī)->附加庫目錄中添加對(duì)應(yīng)的庫路徑(寫Linux環(huán)境下的絕對(duì)路徑),在鏈接器->輸入->庫依賴項(xiàng)里面寫上需要的庫名稱贴届,去掉名稱里面的lib和擴(kuò)展名.a,例如:libuser.a就是user靠粪。
總之在編譯階段需要的文件配置實(shí)際都是在Linux環(huán)境下的。比如在項(xiàng)目中使用到了第三方庫毫蚓,需要引用頭文件以及靜態(tài)庫占键,動(dòng)態(tài)庫。那這些頭文件庫文件都是在Linux環(huán)境下去用的元潘,要保證項(xiàng)目在編譯階段能夠在Linux環(huán)境下找到對(duì)應(yīng)頭文件和靜態(tài)庫文件畔乙,在運(yùn)行的時(shí)候也能找到對(duì)應(yīng)的動(dòng)態(tài)庫。頭文件和靜態(tài)庫的配置都是要在項(xiàng)目屬性中去配置的柬批,配置的時(shí)候要求是那些文件在Linux系統(tǒng)目錄中的位置啸澡,一般寫絕對(duì)路徑就好了。 - 動(dòng)態(tài)庫配置用戶環(huán)境變量就可以了氮帐,比如生成的可執(zhí)行文件在運(yùn)行的時(shí)候需要一個(gè).so文件嗅虏,如果這個(gè).so文件在系統(tǒng)庫目錄下,就不需要再去設(shè)置了上沐。如果在用戶自定義的目錄下皮服,就需要配置用戶環(huán)境變量或者系統(tǒng)環(huán)境變量。比如修改一個(gè)用戶的環(huán)境變量参咙,進(jìn)入該用戶目錄下龄广,修改.bashrc文件添加LD_LIBRARY_PATH=自定義動(dòng)態(tài)庫目錄。修改完之后記得使用source .bashrc命令使修改生效蕴侧。
#將用戶根目錄下的lib目錄添加到動(dòng)態(tài)庫目錄择同,這樣該用戶的執(zhí)行文件再運(yùn)行的時(shí)候就會(huì)再這個(gè)目錄中查找相應(yīng)的.so文件
LD_LIBRARY_PATH=$HOME/lib
export LD_LIBRARY_PATH
source .bashrc
其他
調(diào)試->linux控制臺(tái)可以查看輸出信息
屬性->調(diào)試->啟動(dòng)前命令,填入:
export DISPLAY=:0.0
這樣就能在遠(yuǎn)端啟動(dòng)程序并顯示净宵。
若要并行計(jì)算敲才,由于現(xiàn)在使用g++進(jìn)行編譯裹纳,默認(rèn)沒有打開openmp。C/C++ ->命令行->其他選項(xiàng)紧武、連接器->命令行->其他選項(xiàng)
-fopenmp