大型 c++项目,在 ai 帮助下完成 Linux 平台移植,可行性多大?

5 天前
 wnpllrzodiac
原项目是继续 windows 的,大量 windows api mfc atl 和 windows 资源的使用。还有 rpc 和跨进程的 handle 共享显示。几年前完成了 mac 的移植,做了大量的兼容和 stub 代码。平台宏定义满地都是。

现在完成编译链接工作。运行起来各种 crash,几十年的祖传代码感觉用 ai 调内存问题也困难重重。

是不是大公司项目方向对,在继续就行?最后能不能出东西,根本就没人管?
1797 次点击
所在节点    C++
14 条回复
passive
5 天前
windows api 直接连接 libwine ,还挺稳定的。
ui 迁移到 wx 。
frayesshi1
5 天前
直接上 Qt
clemente
5 天前
gemini 3 pro 超级稳
clemente
5 天前
先完善原有项目的单测/功能测试/集成测试/压力测试

让 AI 一把锁
然后按照测试完成率来做判断
liyafe1997
5 天前
可以,并且我认为这正是 AI 擅长的,可以减少很多编码的体力活。
但是要写好 prompt ,用 AI 也不是一件简单的事的。
不是一句「帮我移植到 Linux 」就完事,你需要讲清楚技术方案,库/API 替换,以及一些特殊情况(比如 Windows 有而 Linux 没有的功能,以及一些你能想到的 AI 不能帮你做的决策,你要安排好),给好示例,甚至准备好很多文档,还要拆解好任务。
masterclock
5 天前
其实我见过用 wine 的服务程序
jamesjammy061
4 天前
几乎是 0 ,改成一坨
sagnitude
4 天前
要么直接 wine 跑,也不用移植了
要么直接重写,UI 用 ai 做前端一把梭,再花个把月梳理所有设计要求和模块文档,再找几个熟悉这个工具的人摸个几个月,高强度和 ai 对线,再测试个几个月,还有点可能
svyrblg
4 天前
Mac 往 Linux 移植比 Windows 移植过来简单一些吧
kero991
4 天前
我觉得就算移植过去了,也是屎山代码,而且项目不具备任何维护能力了(你怎么更新这 3 个已经完全不一样的代码?)

github 上多的是这种一代项目勉强移植,然后从头开始用跨平台重构的,只要你这个项目不是停止维护了,你迟早要走这一步。
kero991
4 天前
@passive 我问 ai 啥是 libwine 他给了我另一个建议
如果你想源码级移植,那得用 Winelib ( Wine 的另一个工具),它允许你把 Windows 源码重新编译成 Linux 原生程序,链接的就是 libwine 的开发版本。
wnpllrzodiac
4 天前
@svyrblg mac 移植用了大量 foundation coca 框架 mm 文件,而不是 posix 实现。所以基本除了 sh 脚本可以参考。移植部分基本没用。osx 移植的人是做 osx 开发的
wnpllrzodiac
4 天前
@kero991 wine 运行 windows 版的问题是,一旦遇到 crash 问题。没办法调试。wine 不支持运行 debug 版的 vsruntime 除非 wine 里装 vs2022. 调试也是困难。用了很多 dll 和黑科技
whenov
4 天前
性能要求不高的话,要不把整个 Windows+虚拟机打包吧[doge]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1176454

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX