将 Linux Makefile 工程转换成 VS 工程

[复制链接]

该用户从未签到

2380

主题

2433

帖子

9139

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9139
QQ
跳转到指定楼层
楼主
发表于 2022-4-16 21:17:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

想要查看内容赶紧注册登陆吧!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本文以 redis 为例说明如何用 VS 编译和调试 Linux 下的工程

环境
Windows 10
VS 2019
CentOS 7(虚拟机)
redis-5.0.5

Step 1 安装 VS 2019
到微软官网下载最新 VS(目前是 2019), 个人使用可以用 community 版本,安装时注意要安装 Linux 组件

Step 2 源码准备
下载 redis 源码包,放到 Linux 的 /root/projects 目录并解压

Step 3 设定网络共享,将 /root/projects 共享
注:Linux 最好设置为静态 IP

安装 samba
  1. sudo yum install samba samba-client
复制代码

修改 samba 配置
  1. vim /etc/samba/smb.conf
复制代码

在最后增加一段,其中 /root/projects 是要共享的目录

  1. [share-root]
  2.   path = /root/projects
  3.   valid users=root
  4.   writable=yes
复制代码

重启 smb 服务
  1. systemctl restart smb
复制代码

设置共享目录读写权限
  1. chmod -R 777 /root/projects
复制代码

关闭linux防火墙
  1. systemctl  stop  firewalld
复制代码

关闭 selinux
如果是临时关闭,可以用下面的命令关闭,不需要重启

  1. setenforce 0
复制代码

如果要一直关闭,可以修改文件 /etc/sysconfig/selinux,修改成 SELINUX=disabled

这时应该可以在 windows 用 \IP 访问到 Linux 的目录

创建映射网络驱动器
在 windows “我的电脑” 里创建映射网络驱动器


创建后会多出一个网络驱动器 Z

Step 4 生成 VS 工程文件,设定生成命令和生成目录
下载 vclinux https://github.com/robotdad/vclinux
下载回来的是两个 sh 脚本,放到任意的目录(如 /root/bin)

执行生成命令
  1. cd /root/projects
  2. sh /root/bin/genvcxproj.sh  redis-5.0.5 redis-5.0.5.vcxproj
复制代码


执行后,会生成 /root/projects/redis-5.0.5/redis.vcxproj 文件

设定生成命令和生成目录
在 VS 中打开 redis.vcxproj (通过 Z 盘)

打开项目属性,设定输出目录,注意选项正确的平台(X86)


设定远程生成命令

完成后,按 F7 生成 redis。生成的程序文件输出到 /root/projects/redis-output/bin

Step 5 远程调试设定
设定调试程序和参数,这里调试 redis-server

复制 redis.conf 到 /root/projects/redis-output/conf 目录
  1. cd /root/projects/redis-output
  2. mkdir conf
  3. cp /root/projects/redis-5.0.5/redis.conf conf/
复制代码

设定远程调试参数
在“工具->选项”菜单中的“跨平台”页设定 SSH 连接参数

开始调试
打开 server.c, 在 main 函数打断点,然后按 F5 开始调试


可选步骤
CentOS 7 升级到 gcc 7.3
默认的 gcc 版本比较低,一些 C/C++ 的新功能无法使用,需要升级
  1. yum -y install centos-release-scl
  2. yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
  3. scl enable devtoolset-7 bash
复制代码

升级后的效果


scl 命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。如果要长期使用 gcc 7.3的话,可以修改 profile 文件
  1. echo "source /opt/rh/devtoolset-7/enable" >> /etc/profile
复制代码

分享到:  QQ好友和群QQ好友和群
收藏收藏
回复

使用道具 举报

快速回复高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表