V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
crayygy
V2EX  ›  程序员

请教一下有没有什么方式可以实现在 Windows 上完成编译只有在类 Unix 上配置环境的项目

  •  
  •   crayygy · 2021-04-09 19:21:23 +08:00 · 966 次点击
    这是一个创建于 1331 天前的主题,其中的信息可能已经有所发展或是发生改变。

    完整的背景是这样的: 一个 Android 项目,非常大,底层全是 C++,由于用到了一些比较特殊的编译选项,目前测试下来只有 Linux/Mac 上面配置起来比较省心,尝试过 MinGW 以及 Cygwin,都遇到了不太好解决的问题,因此之前的解决方案一直是在 Linux 上面去编译。 最近因为新采购了一台 Windows 机器 (i9 + 32G + 1T SSD),而公司 VPN 又只有 Windows/Mac 上面可以用,因此又动了点心思想看看能不能实现想要的效果。

    目前想到的解决方案:

    1. 使用 WSL2 + Ubuntu 20.04 ,不知道是否能达到使用 Windows 上的 Android Studio,但是编译时使用 WSL 内部的环境?(正在尝试,但感觉有点困难,VSCode 看了下可以实现,但是配置 Android 开发环境还是有点麻烦的)

    2. 使用 WSL2 + Ubuntu 20.04 ,在 WSL 内安装完整的 GNOME 环境,使用 WSL Ubuntu 内的 Android Studio 进行编码。(网络环境简单,但 WSL2 加上 GNOME,稳定性确实有些让人担忧)

    3. 使用 Windows + VirtualBox(Ubuntu 20.04) 来实现网络从 Windows 实体机上走,写代码时使用 VirtualBox 内部的 Ubuntu 来编译。(肯定可行,但担心虚拟机的 CPU 以及 IO 会不会造成较大的性能损失)

    4. 使用 Ubuntu + VirtualBox(Windows) 来实现网络从 Windows 虚拟机走,写代码使用 Ubuntu 。(没有性能损失,也没什么折腾的,但是可能存在 Policy 问题,因为网络走虚拟机的话,外部的使用公司无法监控)

    不知道大家有什么想法或建议,还请不吝赐教,提前感谢!

    Jirajine
        1
    Jirajine  
       2021-04-09 19:24:11 +08:00 via Android
    编译时没必要用 as,在 wsl 里装好 sdk/ndk 直接用就行。
    crayygy
        2
    crayygy  
    OP
       2021-04-09 19:27:06 +08:00
    @Jirajine #1 这也是一种方案,但是这样会失去在 UI 上直接断点的能力,用 gdb 有点蛋疼...
    Jirajine
        3
    Jirajine  
       2021-04-09 19:30:09 +08:00 via Android
    @crayygy 为什么会?编译和运行是完全无关的过程,你之前怎么调试的还是怎么调试。
    crayygy
        4
    crayygy  
    OP
       2021-04-09 19:39:07 +08:00 via Android
    @Jirajine 谢谢提醒,我先尝试一下。
    我理解在 AS 中要实现跳转等等功能是需要先编译出一些 symbol 才可以的,不确定是否在 WSL 中编译产出的 symbol 也可以被 Windows 上的 AS 正确 load ?
    Jirajine
        5
    Jirajine  
       2021-04-09 19:48:01 +08:00 via Android   ❤️ 1
    @crayygy 你指的是调试符号么?这个格式都是通用的啊,只要编译的时候生成,运行时被调试器加载就可以了。不过你可能需要设置使用 relative path,因为调试器需要从里面读出哪一步对应到源码的哪一行,如果读出来的源码路径 IDE 找不到自然就没法下断点。
    crayygy
        6
    crayygy  
    OP
       2021-04-09 19:55:44 +08:00 via Android
    @Jirajine 明白了,非常感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1485 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 17:22 · PVG 01:22 · LAX 09:22 · JFK 12:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.