我正在考虑一个程序的两个选项。 C ++与Boost异步IO或Java与异步NIO。我知道只要系统具有java运行时,Java就是可移植的。我更喜欢将C ++与Boost一起使用,但我不确定我编写的程序是否可以移植到不同的Windows机器上并且仍在运行。我需要做些什么来确保程序在运行时具有所有必需的依赖项?我打算只使用windows.h,C ++ 2003标准和Boost库。
答案 0 :(得分:6)
boost和CRT可以静态链接到您的可执行文件,因此根本不会有任何外部依赖项。
答案 1 :(得分:3)
只要您使用Boost,C ++标准库(以及CRT,如果您认为必须),您的代码将很容易移植。
请确保您避免使用任何Microsoft CRT扩展程序,例如str*_s
函数(例如here) - 遗憾的是,MSDN并未将这些标记标记为非标准。
还要避免在Visual C ++ v10中使用C ++ 0x功能以在短期内最大限度地提高可移植性 - 或者检查您所定位的其他编译器是否具有您计划使用的功能。
小心:如果你使用windows.h
之外的一堆东西,你将破坏可移植性并增加你需要做的工作。如果你以后想要移植,尽可能避免这种情况,并且如果你确实需要任何东西,请尝试隔离使用不同的'我需要在我移植时改变这个'你自己的头文件和代码文件,所以你知道你只需要在移植到另一个操作系统时查看代码的子集。