0.吐槽
由於用慣了win上面的VS,linux的vim和gdb實在感覺不快樂,於是打算VS遠程調試去連接openwrt(樹莓派4B)。
不知道是openwrt還是我的問題,遇到的問題相比裝debian時多了很多,這里列舉一些主要的問題。
不過也算是學到了挺多東西吧,把坑都踩一遍能強一點吧,自我安慰ing......
1.問題匯總
1-1.Q:***主機上的缺少工具:gcc,gdb,gdbsevice,zip?
A:就是你的linux里沒有安裝上述程序,得去安裝。
問題主要在zip這個程序,在openwrt的web管理里搜索后居然沒有zip程序,最后我是去到中科大軟件源里
http://mirrors.ustc.edu.cn/openwrt/releases/18.06.6/packages/aarch64_cortex-a72/packages/
手動找到zip.ipk然后上傳到openwrt里的 /tmp目錄安裝的(opkg install /tmp/zip.ipk)。
如果你也遇到此問題,需要到鏈接里回退找對應的openwrt版本(18.06.6)和對應的cpu類型(aarch64_cortex-a72)的zip.ipk包。
本來是把這個連接放到openwrt的自定義軟件源里,但在web里搜索還是沒有zip包,就像被過濾了一樣暫不知道原因。
1-2.Q:VS里滿屏的報錯?頭文件全都提示無法找到源文件?
A:百度上很多方法試過后對我沒用,在目錄里
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\Linux\include
是有linux的各種頭文件的,但Vs就是報錯了,最后發現是Vs並沒有真正復制樹莓派的頭文件到win里
上面目錄里的文件似乎是下載Vs時帶的。
解決方法:在 調試 -> 選項 -> 跨平台 -> 鏈接管理器 -> 遠程標頭IntelliSense
此時窗口右方第三個按鈕 " 瀏覽 "
就會進入文件管理里,此時如果你點進usr里會發現里面是沒有頭文件的,這就是VS滿屏波浪線的原因。
因此我們只要把linux里的頭文件(usr/include以及usr/local/include)的頭文件復制進usr就可以了,lib文件同理。
后面的目錄可能不存在,我的openwrt就沒有,沒有關系的。
復制進去后重新打開VS項目就可以了。
1-3.Q:運行就VS卡死,打斷點也卡死?
VS報錯:引發類型"Microsoft.Build.Linux.Shared.ExceptionTTY"的異常
A:這個問題在百度上有人提到是終端有VS無法識別的符號引發了錯誤。
但他的解決方法我不適用:把linux的用戶目錄里的隱藏文件.bashrc直接刪除。
我的默認sh是zsh,把.zshrc刪了並不能解決問題,並且出現更多問題了。而且刪這個感覺好危險......
最后我的解決方法:
在 調試 -> **調試屬性(最后一個選項,例如我的項目名是Project1,則為 Project1調試屬性)
在左邊點 配置屬性 -> 調試
此時右邊里面的調試模式改為 gdbservic 試試看,如果你默認是 gdbservice 就改為 gdb 試試。