AWTK 是 ZLG 开源的跨平台 GUI 引擎,本文介绍一下基于 AWTK 开发应用程序需要遵循的规范和方法,以保证应用程序也能跨平台运行。
尽量使用tkc中的函数
tkc 中提供了编码、时间、网络、串口、线程、互斥和文件系统等各种需要跨平台接口的封装,这些接口在各个平台都有实现。
针对接口编程
如果需要的某个功能,在各个平台都有不同的实现,先研究各个平台提供的功能,再抽象一个统一的接口,针对各个平台实现一个适配器。应用程序使用统一的接口去访问这些功能,应用程序不但能够跨平台运行,代码也更具可读性。
指定特定平台的库、头文件、预处理参数和链接参数
helper 提供了一组函数来处理不同平台的参数。平台名称的取值有:
-
添加平台特有的库;
示例:
helper.add_platform_libs("Windows",["ws2_32"])
helper.add_platform_libs("Linux",["pthread","dl","readline","m"])
helper.add_platform_libs("Darwin",["pthread","dl","readline","m"])
-
添加平台特有的库的搜索路径;
add_platform_libpath(self,platform_name,APP_LIBPATH)
示例:helper.add_platform_libpath("Linux",["/usr/local/lib"])
* 注意这里的 APP_LIBPATH 是数组类型。-
添加平台特有的头文件的搜索路径;
add_platform_cpppath(self, platform_name, APP_CPPPATH)
示例:helper.add_platform_libpath("Linux", ["/usr/local/include"])
* 注意这里的 APP_CPPPATH 是数组类型。-
添加平台特有的宏定义预处理参数;
add_platform_ccflags(self, platform_name, APP_CCFLAGS)
示例:helper.add_platform_ccflags("Linux", " -DSOME_MACRO=1 ")
* ccflags 是字符串格式不是数组。-
添加平台特有的C++文件的预处理参数;
add_platform_cxxflags(self, platform_name, APP_CXXFLAGS)
示例:helper.add_platform_cxxflags("Linux", " -DSOME_MACRO=1 ")
* cxxflags 是字符串格式不是数组。-
添加平台特有的链接参数;
add_platform_linkflags(self,platform_name,APP_LINKFLAGS)
* linkflags 是字符串格式不是数组。
区分各个平台的宏
- WIN32 或 WINDOWS Windows 平台;
- MINGW Windows 平台的 MinGW 编译;
- LINUX Linux 平台;
- MACOS 或__APPLE__ Macos 平台;
- ANDROID Android 平台;
- IOS iOS 平台。
#ifdefANDROID
#include"SDL.h"
#endif/*ANDROID*/
#ifdefined(__APPLE__)||defined(LINUX)
#include
#include
#include
#include
#elifdefined(WIN32)
#include
#include
#include
#include
#include
#include
#defineunlink_unlink
#definerenameMoveFileA
#defineftruncate_chsize
#include"./dirent.inc"
#include"tkc/utf8.h"
#include"tkc/mem.h"
#endif
#ifdefined(__APPLE__)
#include
#endif/*__APPLE__*/
添加平台特有的文件
有些文件是特定平台才需要的,可以根据平台的名称,来决定添加哪些文件。示例:
importplatform;
OS_NAME=platform.system()
ifOS_NAME=='Windows':
sources=Glob('src/windows/*.c')
elifOS_NAME=='Linux':
sources=Glob('src/linux/*.c')
-
开源
+关注
关注
3文章
3334浏览量
42482 -
函数
+关注
关注
3文章
4329浏览量
62586 -
应用程序
+关注
关注
37文章
3268浏览量
57694
原文标题:【Z站推荐】用 AWTK 编写跨平台的代码
文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论