我将承担从Solaris到Linux平台移植相当大的C++网络应用程序代码库的任务.该代码还使用ACE等第三方库.最初编写的应用程序未计划在将来进行移植.
我想就如何完成任务获得一些建议和意见.什么是最好的方法.
-Prabhu.小号
ACE是一个优势,因为它是多平台的.您必须检查您的类型大小的使用位置和方式.如果使用ACE_*基本类型,那么你可以在那里使用条纹,因为它们是可移植的,否则我首先要将Solaris版本更改为使用多平台数据类型和元素(使用ACE工具,因为你已经有了它).
如果您使用的是任何仅有Solaris的外部库,则必须在linux中找到等效项并编写包装器,以便应用程序的其余部分不需要知道正在使用的实现.
之后,只需一个代码库就可以直接迁移到linux.你应该完全编译和测试它.
"没有便携式应用程序只有移植的应用程序"
首先,如果可以的话,首先在两个平台上使用相同的工具.IE如果Solaris版本尚未更改为使用GCC和GNU make等,我建议您先更改此版本并使Solaris版本正常工作.您将发现首先修复编译器问题,而不是尝试在尝试移植应用程序的同时在Linux上修复它们.
其次要确保您可以在同一版本的每个平台上获得所有相同的库.我想你可以获得Linux for ACE.确保该版本的库在Solaris上运行.这将限制兼容性问题.
完成后,真正的工作就开始了.
您需要一次编译一个源文件,并找到Linux中不可用的函数.首先寻找两种操作系统都可用的替代品.如果没有简单的替换,那么为Solaris创建一个库,为Linux创建一个库.创建包装类或函数以抽象不兼容性.
如果这听起来像很多工作 - 那就是.