跨平台调试的 C/C++ 语言项目
Posted 车斗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨平台调试的 C/C++ 语言项目相关的知识,希望对你有一定的参考价值。
clib
clib C API 是一个可以跨平台调试的 C语言静态库,动态库和调用程序的示例项目。示例项目由下面的命令行自动生成:
$ cd pytools/tools/
$ gen_project.py --project=clib
Author: zhang
Date: 2021-06-30 14:32:59
Refer: https://blog.csdn.net/ubuntu64fan/article/details/106689478
Download: https://github.com/pepstack/pytools/blob/main/clib-20210630.143256.tar.gz
可供跨平台调试的 C/C++ 程序项目
系统要求:
- Win10 家庭版 (Windows_NT x64 10.0.19042)
- VS2015 社区版 (C/C++)
- VSCode on Win10
Version: 1.57.1
Date: 2021-06-17T13:28:07.755Z
Electron: 12.0.7
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Windows_NT x64 10.0.19042
Extensions:
Remote Development
C/C++ Extension Pack - msys2-x86_64-20210604.exe
在 Windows 上用 Visual Studio 调试代码
用 VS2015 打开项目文件:msvc/clib-ALL-vs2015.sln,然后编译调试即可。
VSCode 整合 mingw 在 Windows 上调试代码
首先安装好 msys2 环境,参考:https://www.msys2.org/ 。或者如下过程:
-
下载:
https://github.com/msys2/msys2-installer/releases/download/2021-06-04/msys2-x86_64-20210604.exe
-
安装开发工具链:
$ pacman -Syu $ pacman -Su $ pacman -S --needed base-devel mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain
然后根据用户的安装位置目录设置好如下环境变量(路径中不可用有空格、全角字符):
MSYS2_PATH_TYPE=inherit
MSYS64_HOME=C:\\DEVPACK\\msys64
MSYS64_ROOT_BASH=/C/DEVPACK/msys64
WORKSPACE_ROOT_BASH=/C/Users/cheungmine/Workspace/github.com/pytools/gen-projects
添加如下的位置到 Path 环境变量:
Path=...;%MSYS64_HOME%;%MSYS64_HOME%\\usr\\bin;C:\\DEVPACK\\MicrosoftVSCode;C:\\DEVPACK\\MicrosoftVSCode\\bin;
根据代码所在的目录,务必创建一个驱动器链接:"/C" -> “C:”
C:\\>mklink /J "/C" "C:\\"
如果你的代码在 E: 盘,则创建:
C:\\>mklink /J "/E" "E:\\"
注意:关闭防病毒软件以加速编译和调试速度。
接下来就可以用 VSCode 打开项目的目录(.vscode 所在的目录)(或者打开cmd,进入到项目目录,输入:“code .”)。
C:\\Users\\cheungmine>cd C:\\Users\\cheungmine\\Workspace\\github.com\\pytools\\gen-projects\\clib
C:\\Users\\cheungmine>cd C:\\Users\\cheungmine\\Workspace\\github.com\\pytools\\gen-projects\\clib>code .
在 VSCode 窗口,为源程序 app_main.c 设置断点,然后选择:
Run and Debug: (gdb) mingw64 debug
就可以在 Windows 上用 VSCode 调试程序了。
在 Windows 上远程调试 Linux 服务器上的代码
远程 Linux 服务器版本:centos7 + gcc, gdb。
仍然使用 VSCode,将代码复制到 Linux 服务器上,用 VSCode 远程连接到服务器,打开项目目录。按如下选择:
Run and Debug: (gdb) linux64 debug
就可以在 Windows 上用 VSCode 调试 Linux 服务器上的程序了。
此时仍需要输入密码,下面配置免密:
打开 cmd 命令行窗口,生成密钥对:
C:\\> cd %USERPROFILE%
C:\\Users\\cheungmine\\>ssh-keygen
然后把 C:\\Users\\cheungmine.ssh\\id_rsa.pub 复制到 Linux 上,我用 msys shell:
$ ssh-copy-id -i /C/Users/cheungmine/.ssh/id_rsa.pub root@node1
然后在 cmd 中测试是否可用免密登录到 node1:
C:\\Users\\cheungmine\\>ssh root@node1
最后打开 VSCode,配置远程文件:C:\\Users\\cheungmine.ssh\\config, 如下:
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host node1
HostName node1
User root
此时就可用远程免密登录 Linux 服务器,编译和调试远程项目了。切记不要配置:IdentifyFile !
只构建代码(不调试)
进入项目目录(Makefile 所在的目录)可用直接 make,就编译出完整的项目了。支持的 shell 有:
-
cygwin (Windows)
-
mingw (Windows)
-
bash (Linux)
按 “make help” 显示编译帮助。
以上是关于跨平台调试的 C/C++ 语言项目的主要内容,如果未能解决你的问题,请参考以下文章