如果开发一个跨平台的库啊

chenzhixin 2010-01-26 09:39:09
需要写一个库,支持WIN和LINUX等,这个库封装一些底层的通信,由于涉及到串口,视频采集,所以需要把它们都圈定到一个库中,需要作为SDK提供给OEM之类的,在WIN下使用DLL,LINUX下使用SO方式。
现在在用VS搭建平台,可不知道应该创建什么项目,因为创建DLL的话,LINUX下又不需要
...全文
214 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tabris17 2010-01-31
  • 打赏
  • 举报
回复
用标准C++库来写。
涉及到硬件操作部分,抽象出一个层,采用一致的接口,针对不同的操作系统和硬件平台分别写代码
康斯坦汀 2010-01-27
  • 打赏
  • 举报
回复
建议找些跨平台的开源库,看看人家的代码是怎么写的,网上有N多。
chenzhixin 2010-01-27
  • 打赏
  • 举报
回复
底层库是用WIN32API和LINUX下的API分开写的,也用宏判断系统了,但似乎做成SDK不容易了,
在WIN下是DLL,毕竟要提供外部接口,在LINUX下又是SO了,LINUX下也没LIB文件好像。
这个应该怎么弄,其他的设计到底层细节倒好说,分开写就行。
还有工程文件改怎么划分,WIN下用VS,Linux下用autotools,
如果用CMake怎样,上层程序用QT做,GTK跨平台不方便,开发效率也低些。

LINUX下没有消息,该怎么弄,我之前用的是回调函数,每从串口接收到一字符后就调用注册的回调函数,
有没有更方便的
JonathanS666 2010-01-27
  • 打赏
  • 举报
回复
用QT开发
rainsly 2010-01-27
  • 打赏
  • 举报
回复
win和lin下的可执行文件格式是不同的
动态连接库的格式好像也不同

所以,可以考虑一次编码使用宏区分两个平台,编译2次

或者如果实现时差异太大,就该定一个接口,2套实现,把那么多不相干代码整合在一起,不方便修改管理和维护
wangk 2010-01-26
  • 打赏
  • 举报
回复
用Eclipse配合Code::Blocks或者DevC++之类的

编写代码的时候能用C++库函数就用C++库函数,用API的地方要用宏分开Windows和Linux的。
c_s0001 2010-01-26
  • 打赏
  • 举报
回复
使用宏判断
IcyPlayer 2010-01-26
  • 打赏
  • 举报
回复
非要用vs,更推荐在Windows下只把vs当编辑器来用,编译还是写Makefile,用gcc编译,这样跨平台能减少很多问题
IcyPlayer 2010-01-26
  • 打赏
  • 举报
回复
如果要跨平台,还要用vs的话,也可以,在Windows调试通过后,在linux下要自己写Makefile再编译
xwsn007 2010-01-26
  • 打赏
  • 举报
回复
用标准c++写,不同平台下编译

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧