Qt 跨平台开发
文章目录
- Qt 跨平台开发
- 摘要
- 第一 ` \ & /`
- 第二 神奇`{`不能换行显示
- 第三 预处理宏
关键字:
Qt
、
win
、
linux
、
lib
、
MSVC
摘要
最近一直在琢磨Qt跨平台开发的问题,缘由有以下几个,
首先第一个,我们目前开发的软件是应该通用性的软件,所以未来应该大概率是会多平台支持。
第二,软件的特性是属于监控类软件,那么长期稳定运行也是一个重要的指标,虽然现在Windows的稳定性已经很好了,但是Linux可以更胜一筹。
第三,我司目前的主力技术更加精通Linux下的开发,当我们遇到问题是,他们在Windows下的经验不是很多,比如对于崩溃事件的定位,Windows下尝试了好几个工具都不理想,所以他们更希望有Linux下的软件
第四,多点一点技能树也挺好。
第一 \ & /
看到这个是不是很头疼,这是我遇到的第一个问题,直接导致我放弃了第一次移植,虽然之前也是Linux 有过开发经验,但是在基本都是单平台的,要么Windows,要么Linux,那么如果在Windows用的是MinGW套件也好说,主要是们有好几个大牛直接嫌弃MinGW的性能,加上开始项目不是我自己主导,所以我们的编译环境是MSVC套件。这就导致我在移植的时候,更加困难,不过好在之前做过国际化了,把项目中的中文全部替换了,不然更是灾难。说正事。
起因就是我发现我代码使用git在Linux平台拉取后,不分文件丢失,但是重新添加又会好使,这就让我很烦,数百个文件,让小弟处理不放心,主程处理浪费资源。自己处理又不想搞。所以第一次就搁置了。
知道今天,我主导的第二代重构项目要决定必须两个平台同时开进,不得不处理时才发现这个可恶的\ & /
Windows下这个好像并不是很敏感,可以混着用,但是到Linux 就不可以了,最终吧pro 和pri中的\
替换为/
就好是了
第二 神奇{
不能换行显示
还是接着聊跨平台,既然都到跨平台了,那在不同平台下,包含的库也是不同的,当我使用一下代码包我的库文件的是时候,还是报错了。具体表现是什么,就是Windows竟然链接到了unix中的库文件,直接包找不到xxxx.lib,能在linux库中只掉.lib库就见鬼了。
win32
{}
unix:!macx
{}
这个问题我问了GPT,GPT都得懵逼,所以我就直接百度,批量打开,偶然间看到一个大佬说{
不能单起一行,和关键字同一行解决,FFFFFFF,学艺不精!
第三 预处理宏
这个没啥好说的,使用宏包一下就可以,只是我看Qt里面有好几个,也知道具体啥区别,目前Windows下使用了Q_OS_WIN
宏