tyr*_*dis 5 c++ cross-platform
如果我想为多个平台编写我的C++应用程序,例如Windows和Linux,那么编写平台代码的推荐方法是什么?有什么模式,类层次结构等来完成这项任务?我应该如何组织我的代码,标题和源文件?
我没有完全解答您的问题,但通常您应该将平台相关代码与平台无关代码分开.例如,你可能有一个文件夹platform和里面为你所支持的每个平台的文件夹,那么你可能有win32/mutex.hpp,linux/mutex.hpp,mac/mutex.hpp和他们每个人的您也可以添加实施互斥的该平台.然后你需要的是一个基于平台选择正确文件并包含它的单选择器头.例如platform/mutex.hpp,包括正确平台中的任何指定文件.
但除此之外,看看boost它以独立于平台的方式实现许多平台相关代码,你可以从中学习,你可能会看到你的平台相关代码的实现!
确保您不使用特定于编译器的扩展,或至少坚持使用 1 个单一编译器(推荐:跨平台的 G++)
首先遵循这些。模式只是组织代码的手段。一种语言允许的标准模式理论上在所有平台上都保持不变,因此这不应该是问题的一部分
使用 #ifdef MACROS 编码平台特定的文件路径、平台特定的网络库等。
您越是保持平台独立,您就越需要依赖第三方工具包。
组织:
FOLDERS: program
|_plaf
|_headers
|_source
|_makescripts
plaf
|_win32 //contains windows specific wrapper functions in header files
|_unix //contains unix specific wrapper functions in header files
headers: //contains platform independent headers
lib: //contains platform independent static libraries
sources: //contains .h and .cxx(or .cc or .cpp) files. ONE file per class with main function in main.cxx
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1408 次 |
| 最近记录: |