关于 boost、Qt 和跨平台

2020-03-10 10:15:16 +08:00
 auto8888
新人发帖,原来在公司用 Qt 框架做了一个跨 windows linux 和 arm linux 的车载软件(无界面),现在准备做成产品,量产,几百套吧,领导不让用 Qt,要改成 C++的。
后面想到 boost 库也是跨平台的,也有文件系统、字符、线程、定时器、TCP UDP 这些,想着应该比自己造轮子来的稳定吧,那么 boost 好用吗,坑多吗,请教下各位大佬。
5864 次点击
所在节点    C++
36 条回复
leon0903
2020-03-10 17:08:35 +08:00
为什么不用 qt 呢? qt 不也是 C++么。
xsen
2020-03-10 17:32:11 +08:00
对于 Qt,只要不修改源代码并且动态链接,是完全可以发布编译好的库的,也可以和闭源软件一同发布,这是没有问题的。

在这个用例之下,LGPL 的重点在于:
1、不修改源码
2、动态链接
3、不修改 Qt 库的分发版权,并提供原有的版权声明
laminux29
2020-03-10 17:33:49 +08:00
不考虑性能问题,为啥不用 javafx ?开发效率比 C++高一个数量级。

如果考虑性能,一定要用 C++,建议界面 wxWidgets,通信 thrift,其他小工具用 boost。
hhhsuan
2020-03-10 17:38:11 +08:00
Qt 不是做界面的吗,跟 boost 这种通用库有啥可比性?
livepps
2020-03-10 17:41:20 +08:00
boost 你用到的接口加一层封装,如果出问题,就自己重写实现,一般也不会出什么问题。
turi
2020-03-10 17:51:25 +08:00
boost 基本上都有例子吧,为什么要去网上搜例子呢?
boost 更新迭代快,看官方例子就行了。
newmlp
2020-03-10 17:54:23 +08:00
@mnssbe 商用不需要授权,只要你不改 Qt 源码就行了
newmlp
2020-03-10 17:56:49 +08:00
@hhhsuan Qt 不仅仅是做界面的,还包含了一套跨平台的库,包括网络,数据库,容器。。。。等等
mnssbe
2020-03-10 18:01:04 +08:00
@newmlp 嗯 不修改,动态链接
auto8888
2020-03-11 10:17:27 +08:00
@leon0903 我也这么觉得的,老板不让用有锤子办法,我就一打工仔
auto8888
2020-03-11 10:25:31 +08:00
@turi 确实,不过有一点不爽的是,boost 一定要 try catch 吗,比如就一个 boost::filesystem::remove 都能把整个程序崩了,凭啥有那么高优先级啊,返回 false 不就完了么
no1xsyzy
2020-03-11 15:20:15 +08:00
@mnssbe 其实说真的,如果有哪块领域,因为发个源代码就能有差的,那你也根本不差钱买 Qt 商业授权。
其他纯粹自个儿揪自个儿头发——自找秃的。
多少免费软件就 TM 喜欢搞这种事,别人拿去卖了就大呼小叫,纯粹自己多事儿,跟你、你的真正的用户,有关系吗?别人坑了多少傻子钱,那些钱本来难道会进你腰包吗?还可以说是对经济学和所有权概念认识不清,没那本事排他就别主张独占。
我喜欢的故事就是那个,小偷偷了神父的钱,警察抓到了,神父却说 “那是我送他的”。
ysc3839
2020-03-11 17:19:21 +08:00
@auto8888 C++ 标准库里也有很多是会 throw 的呀?

另外,标准库里面的 filesystem 可以自己传个变量进去获取错误,不会 throw。
https://zh.cppreference.com/w/cpp/filesystem/remove
mnssbe
2020-03-11 17:39:46 +08:00
@no1xsyzy 你开心就好
turi
2020-03-11 17:50:45 +08:00
@auto8888

个人感觉 c++就是缺乏崩溃的异常,其余的还好,

现在开源库基本上都用异常,而不用 c 语言那套
LANB0
2020-03-11 18:18:45 +08:00
C++17 不就差不多够用? boost 神坑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/651420

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX