Romate 发表于 2021-1-21 10:29:53

求助linux应用开发的方法

最近在学习linux 准备从应用程序下手,目前学习了原子的linux,但是还是没弄明白linux的应用程序,如果不上qt什么的,怎么写应用程序呢。难道和单片机一样 在应用程序里面open对应驱动,然后write 或者read 这个驱动接口吗,写一个while或者什么的。求大神给指点指点,有点疑惑。

硬邦邦 发表于 2021-1-21 10:45:00

QT只是GUI而已。

Romate 发表于 2021-1-21 10:49:37

硬邦邦 发表于 2021-1-21 10:45
QT只是GUI而已。

这个我知道,我还是没想明白这个应用程序写发不会和单片机一样,打开驱动 读接口,如果是这样linux有什么优势呢?

zxq6 发表于 2021-1-21 10:50:56

经典的GCC不是很好用吗?
linux下好多都是命令行,使用gcc编译就好了。
如果需要一个ide,可以考虑安装一个eclipse
当然,makefile耍得好,手中无剑,心中有剑。啥ide都是浮云。

硬邦邦 发表于 2021-1-21 10:51:52

应该是和单片机一样。

hyghyg1234 发表于 2021-1-21 10:54:06

可以试试golang

boyiee 发表于 2021-1-21 10:54:32

用什么无所谓,关键是代码, VSCODE,eclipse,NOTEPAD,QT都只是个壳子而已,都可以用,核心是C/C++代码和GCC编译器。
linux优势主要是软硬分离,还有数不尽的开源代码,基本你遇到的需求90%功能都可以从开源代码里找到{:lol:}{:lol:}

boyiee 发表于 2021-1-21 10:55:06

当然python之类的语言都可以。

Romate 发表于 2021-1-21 10:55:58

boyiee 发表于 2021-1-21 10:54
用什么无所谓,关键是代码, VSCODE,eclipse,NOTEPAD,QT都只是个壳子而已,都可以用,核心是C/C++代码和GCC ...

我是想知道 应用程序开发和单片机开发是一样的吗? 就是打开驱动读写等等什么的?

yplin27 发表于 2021-1-21 10:56:38

Linux 下大多数都抽象成文件操作

Bunny_Girl 发表于 2021-1-21 10:59:53

本帖最后由 Bunny_Girl 于 2021-1-21 11:03 编辑

qt只是gui,可以不用gui纯命令行cli的
设备驱动,简单说,就是如楼主位,open、write、read,当然具体更复杂了

以串口为例,帮你找了两篇教程:
Linux下串口通信详解(上)打开串口和串口初始化详解 https://blog.csdn.net/specialshoot/article/details/50707965
Linux下串口通信详解(下)读写串口及关闭串口 https://blog.csdn.net/qq_39436605/article/details/80894270

敲代码的话,vim就够用了,编译就gcc

Romate 发表于 2021-1-21 11:01:24

yplin27 发表于 2021-1-21 10:56
Linux 下大多数都抽象成文件操作

大概理解为,其实不上QT什么的 直接比如lcd显示什么的就是open屏幕的驱动,然后 write对应内容

canopen 发表于 2021-1-21 11:03:57


没有高级功能需求(开服务器之类的)的话,单片机就足够了。如果需求都不清楚,为了上linux 二上linux,引入的问题会更多。
虽说linux上开源源码不少,但是这样开源代码移植起来,也不不会特别容易。依赖问题需要解决,有库版本冲突的话,就非常酸爽了。

vtte 发表于 2021-1-21 11:30:14

我之前用eclipse开发linux下的c,各种库弄得头大,后来用了golang就爽歪歪了。

yplin27 发表于 2021-1-21 11:43:43

Romate 发表于 2021-1-21 11:01
大概理解为,其实不上QT什么的 直接比如lcd显示什么的就是open屏幕的驱动,然后 write对应内容 ...

我的理解是 Linux 驱动可以选择把自己的功能抽象成文件系统中的一个或多个文件,用户态的应用通过读写这些文件来跟驱动交互,所以你open的不是驱动,而是抽象出来的文件,譬如往某个文件写1,可以控制某个io上拉;往另一个文件写1,则可以控制某个io的输出值

LCD 内容应该是可以通过操作一个抽象出来的 FrameBuffer 文件

tdatd 发表于 2021-1-21 11:48:46

买个树莓派玩吧

chun2495 发表于 2021-1-21 12:36:41

Romate 发表于 2021-1-21 10:55
我是想知道 应用程序开发和单片机开发是一样的吗? 就是打开驱动读写等等什么的? ...

是的,你要是用linux干这个完全可以。问题是单片机能干的事,你还花钱上linux干什么。

Bunny_Girl 发表于 2021-1-21 13:05:14

上linux是为了更方便快捷吧,有很多现成的东西可用,不必重复造轮子,比如网络服务器方面就很适合了
就类似为什么要用python
如果用单片机开发的复杂程度时间成本都ok的,就没必要上linux了

justdomyself 发表于 2021-1-21 13:47:12

linux工资高

下一页 发表于 2021-1-21 14:36:50

Romate 发表于 2021-1-21 10:49
这个我知道,我还是没想明白这个应用程序写发不会和单片机一样,打开驱动 读接口,如果是这样linux有什 ...

操作系统的目的有两个,一个是通过驱动程序屏蔽硬件细节,不论是圆口鼠标还是u口鼠标,在操作系统这里都是鼠标,不用程序员关注底层硬件,实现分层开发。二是多任务,用软中断代替硬中断,多个进程可以同时运行,便于网络和图形界面这些需要大量占用系统时间的应用和客户应用同时运行。

gui和网络是两个典型需要操作系统的场合。其他情况单片机大多数能应付。

wxws 发表于 2021-1-21 18:12:47

直接买个树莓派吧,各种应用,各种实现方式,多搞点小项目就明白了。为什么非要树莓派呢,因为是同一硬件平台,全世界的人都在上面折腾。软件建议golang.

armstrong 发表于 2021-1-21 19:55:31

Bunny_Girl 发表于 2021-1-21 13:05
上linux是为了更方便快捷吧,有很多现成的东西可用,不必重复造轮子,比如网络服务器方面就很适合了
就类似 ...

你是不是盗号上论坛的?
总感觉哪里不对劲……

Bunny_Girl 发表于 2021-1-21 20:18:12

armstrong 发表于 2021-1-21 19:55
你是不是盗号上论坛的?
总感觉哪里不对劲……

额,为什么呢?
因为觉得回复不专业么?—— 的确是业余的并不专业
不过也不至于因此觉得是盗号的啊

armstrong 发表于 2021-1-21 21:04:50

本帖最后由 armstrong 于 2021-1-21 21:06 编辑

Bunny_Girl 发表于 2021-1-21 20:18
额,为什么呢?
因为觉得回复不专业么?—— 的确是业余的并不专业
不过也不至于因此觉得是盗号的啊 ...

{:lol:} 是因为回复比较专业,所以感觉不太适应人设。
看来你真的堕落了,竟然回答技术问题!从此对你更加五体投地!

chenchaoting 发表于 2021-1-22 09:36:09

armstrong 发表于 2021-1-21 21:04
是因为回复比较专业,所以感觉不太适应人设。
看来你真的堕落了,竟然回答技术问题!从此对你更 ...

关键她还是个女的,你说气人不

security 发表于 2021-1-22 09:42:47

如果有开发过 windows 的桌面应用程序,那就想想 windows 是怎样的开发模式,就是类似的了。

Romate 发表于 2021-1-22 14:09:09

security 发表于 2021-1-22 09:42
如果有开发过 windows 的桌面应用程序,那就想想 windows 是怎样的开发模式,就是类似的了。 ...

桌面之前做过c# 太爽了,简单的直接调库,比单片机easy多了。非常感谢各位的指教,目前应用程序编写已经有大概思路

wurst 发表于 2021-5-25 12:11:41

Linux应用开发相对单片机思路得转变一下。一般当程序分几个模块,一个模块一个线程,采用数据队列耦合。以前我用gcc,现在还是建议用qt。qt可不只是gui开发哦!

redworlf007 发表于 2021-5-25 12:17:24

wurst 发表于 2021-5-25 12:11
Linux应用开发相对单片机思路得转变一下。一般当程序分几个模块,一个模块一个线程,采用数据队列耦合。以 ...

可以快进到golang开发

xfdr 发表于 2021-5-25 12:24:05

现在c#也可以开发linux
页: [1]
查看完整版本: 求助linux应用开发的方法