跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一下有没有什么方式可以实现在 Windows 上完成编译只有在类 Unix 上配置环境的项目
未分類
17 4 月 2021

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

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

資深大佬 : crayygy 0

完整的背景是这样的: 一个 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 问题,因为网络走虚拟机的话,外部的使用公司无法监控)

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

大佬有話說 (6)

  • 資深大佬 : Jirajine

    编译时没必要用 as,在 wsl 里装好 sdk/ndk 直接用就行。

  • 主 資深大佬 : crayygy

    @Jirajine #1 这也是一种方案,但是这样会失去在 UI 上直接断点的能力,用 gdb 有点蛋疼…

  • 資深大佬 : Jirajine

    @crayygy 为什么会?编译和运行是完全无关的过程,你之前怎么调试的还是怎么调试。

  • 主 資深大佬 : crayygy

    @Jirajine 谢谢提醒,我先尝试一下。
    我理解在 AS 中要实现跳转等等功能是需要先编译出一些 symbol 才可以的,不确定是否在 WSL 中编译产出的 symbol 也可以被 Windows 上的 AS 正确 load ?

  • 資深大佬 : Jirajine

    @crayygy 你指的是调试符号么?这个格式都是通用的啊,只要编译的时候生成,运行时被调试器加载就可以了。不过你可能需要设置使用 relative path,因为调试器需要从里面读出哪一步对应到源码的哪一行,如果读出来的源码路径 IDE 找不到自然就没法下断点。

  • 主 資深大佬 : crayygy

    @Jirajine 明白了,非常感谢!

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具