没有源代码的大程序很难。
两个系统的程序,地址空间都有不同。唯一的办法是将一个系统的程序反编译,然后切换编译器重新编译。典型的编译器GCC和MinGW。
难点1.反编译不一定准确,经常出现反编译的程序不能运行的情况。
难点2.很多依赖库,需要在另一个系统重新寻找或编写,这也许就是难点一的主要原因。如果有源代码的话,相对容易。只有难点2。
这个依赖库,具体来讲,一般都属于叫做运行时库Runtime Library的这个东西。运行时有的是跟语言绑定的,比如Java 有对各个操作系统不同的JRE;也有的是跟系统绑定的,比如windows对C系语言提供兼容的win32。移植的话不但要熟练掌握win32,还要掌握Linux的运行时,工作肯定非常艰苦啦。
参考了以下资料