VS2017創(chuàng)建并調(diào)試LINUX程序

原創(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組件選上就好了。


image.png

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岗宣、AIXSolaris淋样、Digital UNIX耗式、Irix,以及其他平臺(tái),都可運(yùn)行SSH刊咳。
linux console window下

sudo apt-get install ssh

默認(rèn)端口為22彪见,可以修改。

3.創(chuàng)建linux工程

170312111691991.gif

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.


ArchOptions.gif

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.


ManageConnections.gif

To change which connection a project is using go to the project properties general settings and update the Remote Build Machine option.
ChangeRemote.gif

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.


OutputTypes.gif

4.頭文件

  1. 目標(biāo)機(jī)上gcc娱挨、g++余指、gdb一定要安裝
  2. linux引用的頭文件需要手動(dòng)復(fù)制到$:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\Linux\include\usr路徑下,尤其是特殊的項(xiàng)目引用頭文件
  3. 包含目錄最好在(項(xiàng)目右鍵->屬性->c/c++->常規(guī)->附加包含目錄)
  4. 自定義庫包含目錄一定要在(項(xiàng)目右鍵->屬性->鏈接器->常規(guī)->附加庫目錄)里面添加跷坝,(vc++目錄沒有用)
  5. gdb調(diào)試項(xiàng)目在復(fù)制到linux時(shí)是ssh登錄用戶下的目錄酵镜,如果沒有設(shè)置絕對(duì)路徑
  6. 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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剃氧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子阻星,更是在濱河造成了極大的恐慌朋鞍,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妥箕,死亡現(xiàn)場(chǎng)離奇詭異滥酥,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)矾踱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門恨狈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疏哗,“玉大人呛讲,你說我怎么就攤上這事》捣睿” “怎么了贝搁?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)芽偏。 經(jīng)常有香客問我雷逆,道長(zhǎng),這世上最難降的妖魔是什么污尉? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任膀哲,我火速辦了婚禮,結(jié)果婚禮上被碗,老公的妹妹穿的比我還像新娘某宪。我一直安慰自己,他們只是感情好锐朴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布兴喂。 她就那樣靜靜地躺著,像睡著了一般焚志。 火紅的嫁衣襯著肌膚如雪衣迷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天酱酬,我揣著相機(jī)與錄音壶谒,去河邊找鬼。 笑死膳沽,一個(gè)胖子當(dāng)著我的面吹牛汗菜,可吹牛的內(nèi)容都是我干的泼差。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼呵俏,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼堆缘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起普碎,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤吼肥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后麻车,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缀皱,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年动猬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了啤斗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赁咙,死狀恐怖钮莲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情彼水,我是刑警寧澤崔拥,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站凤覆,受9級(jí)特大地震影響链瓦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盯桦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一慈俯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧拥峦,春花似錦贴膘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至璃哟,卻和暖如春氛琢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背随闪。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工阳似, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人铐伴。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓撮奏,卻偏偏與公主長(zhǎng)得像俏讹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子畜吊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理泽疆,服務(wù)發(fā)現(xiàn),斷路器玲献,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,129評(píng)論 25 707
  • 真正到了分別的時(shí)候殉疼,心里卻那么不舍。 往事如煙捌年,歷歷在目瓢娜。 十六年的青春,十六年的汗水礼预。 未來如斯眠砾,忐忑如斯。
    雨林衛(wèi)閱讀 149評(píng)論 1 0