解析Linux C/C++开发的难度到底在哪

2023-05-16

解析Linux C/C++开发的难度到底在哪

 

经常被问到的问题, 如何学习C++, 如何学习Linux, 如何开始?

其实这个问题对于不同的人答案往往不尽相同,每个人所处的环境就不同。一个普遍的现象是有一些windows开发基础的人,他们想转Linux开发,那我就以这个点和大家讨论一下。

相对于Linux下的C/C++开发,在windows下的初学者往往容易入门,原因是visual studio, 这个强大的工具隐藏了很多的细节,好多人甚至以为拖拖控件,写写消息响应函数就是软件工程师了,这点在入门的时候尤为明显,出生牛犊不怕虎,信心满满。但是在这个强大工具的背后,隐藏了太多的东西,其中许多对于我们来说是非常重要的东西,比如Make, debug, call stack, 汇编代码,OS,哪些功能是系统提供的,哪些是工具提供的。所以很多人转过来的时候往往去类比以前windows的知识,但是又对不上,再加上无人指点,工作不用,可能慢慢的就会失去信心。

 

但是我认为作为一个有追求的软件工程师,如果不了解Linux, 我不认为他合格,当然此处无意挑起平台之争,实在是对于软件工程师而言Linux给了我们另一个选择,另一种思路,同时也提供了我们很多的轮子和一座宝库。

 

如下总结出一些建议,希望对Windows转Linux开发的朋友有所帮助。

1. 不要一开始就去搞内核,先装上系统用Linux来完成一些日常的事情,比如:看电影,拷贝文件,添加修改用户,文件,学学shell 脚本。

2. 试着用命令行去编译一些简单的代码,然后逐步增加难度,然后学学make。

3. 学习Linux的一些基础知识,找本书看看。

4. 尝试自己去写一些小的东西,动起手来,别总看书而不去实践,实践出真知。

5. 学习如何调试代码。

6. 学习主要的一些系统调用,文件操作,socket操作等等。

7. 学习简单的驱动开发,比如:串口驱动。

8. 学习...

9. 学习内核源代码。

 

另外在此需要指出的是,当你真正看透了Windows和Linux的软件开发的时候,你可能并不觉得他们有很大的区别,所谓殊途同归,说的可能就是这个道理,比如这两个平台的代码最后都会转换为IA32架构的指令序列,在转换过程中使用了不同的工具,反出来的汇编代码区别也不是太大。还是那句话,做同样的事情,每个人的切入点不同,所谓站得一山方望得另一山高,千万不要畏而不前,迟迟不敢动手。

 

希望此文对大家有所帮助。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解析Linux C/C++开发的难度到底在哪 的相关文章

  • cuda中用cublas库做矩阵乘法

    这里矩阵C 61 A B xff0c 原始文档给的公式是C 61 alpha A B 43 beta C xff0c 所以这里alpha 61 1 xff0c beta 61 0 主要使用cublasSgemm这个函数 xff0c 这个函数
  • cv_bridge中的编码模式与实现

    image encodings cpp文件是关于图像编码模式的源文件 xff0c 其中规定了RGB的图像以及深度图的编码模式 该编码文件image encodings cpp所依赖的头文件图 命令空间 sensor msgs image e
  • Pixhawk进阶开发

    使用者 初见Pixhawk 大家知道Pix是一个出色的开源飞控 xff0c 那到底什么是Pixhawk呢 xff0c 它有那些种类 它的硬件是怎么设计的 xff0c 软件是基于什么方式设计的 xff0c 我们怎么连接 初始化配置 怎么调节参
  • Java程序心得体会

    学习Java是一件快乐的事情 xff0c 刚开始学习的时候还有点难 xff0c 后来慢慢熟悉了Java的程序操作 xff0c 在错误中获得技巧 xff0c 一次又一次的失败 xff0c 让我对Java产生了兴趣 xff0c 现在对Java既
  • linux网卡顺序发生变化,(linux)复制的虚拟机网卡eth0变成了eth1或其他名称后修正方法...

    正在使用的虚拟机 xff0c 复制之后 xff0c 发现网卡名称发生了变化 xff0c 修正方法如下 xff1a 比如eth0变成了eth1 xff1a ifconfig xff1a udev动态管理设备文件 xff1a cat etc u
  • Android中的Android中的Surface和SurfaceView

    一 什么是Surface 简单的说Surface对应了一块屏幕缓冲区 xff0c 每个window对应一个Surface xff0c 任何View都要画在Surface上 传统的view共享一块屏幕缓冲区 xff0c 所有的绘制必须在UI线
  • 创新AI技术引领手机芯片发展方向,麒麟970荣获中国好设计金奖

    11月24日 xff0c 2017年中国好设计颁奖仪式在深圳正式召开 xff0c 奖项一共设置为金奖 银奖 创意奖 入围奖四个级别 而麒麟970作为人工智能领域的代表性产品 xff0c 也是唯一的芯片产品 xff0c 在今年的85个项目中脱
  • 史上最全阿里 Java 面试题总结

    以下为大家整理了阿里巴巴史上最全的 Java 面试题 xff0c 涉及大量 Java 面试知识点和相关试题 JAVA基础 JAVA中的几种基本数据类型是什么 xff0c 各自占用多少字节 String类能被继承吗 xff0c 为什么 Str
  • 图象传输协议——PCoIP

    PCoIP 是一种高性能显示协议 专为交付虚拟桌面而构建 无论最终用户具有什么任务或处于何位置 均可为其提供内容极为丰富的最佳桌面体验 借助 PCoIP 整个计算体验先经过在数据中心进行 压缩 加密和编码 然后再通过标准 IP 网络传输到启
  • VB6 对象库未注册问题

    以下是个人使用VB6出现对象库未注册问题的解决方法 已成功 xff01 一 注册ocx文件 mscomctl ocx文件放进路径C Windows System32 xff08 64是此路径 xff0c 由于本人是64位系统32位未测试 x
  • 源码阅读技巧篇

    转载请注明原创出处 xff0c 谢谢 xff01 说在前面 本人水平有限 xff0c 下面的一些都是本人的思考与理解 xff0c 如果有那里不对 xff0c 希望各位大佬积极指出 xff0c 欢迎在留言区进行评论交流 探讨 主题 为什么要读
  • 黑箱方法-神经网络①

    人工神经网络 人工神经网络的概念 人工神经网络 xff08 Artificial Neural Networks xff0c ANN xff09 是对一组输入信号和一组输出信号之间的关系进行建模 xff0c 使用的模型来源于人类大脑对来自感
  • 飞行前的准备工作

    1 飞控固件 Mission Planner 里的版本 xff0c 好像没有offboard和一些参数的设置 Mission Planner中固件下载 3 3 3 3 4 6 Qground Control中的固件QGC中的固件中有offb
  • make menuconfig 无法启动处理方法

    ake menuconfig Unable to find the ncurses libraries required header files 问题 xff1a lzz 64 lzz virtual machine linux 2 6
  • Ubuntu下自动输入sudo密码

    sudo 自动输入密码 echo 34 password 34 sudo S netstat tlnp S参数 The S stdin option causes sudo to read the password from the sta
  • ssh 或 putty 连接linux报错解决方法

    由于当天多次输入错误密码 xff0c ssh和putty就连接不上了 xff0c 纠结了很久解决问题 ssh连接提示错误 xff1a server unexpectedly closed network connection putty 连
  • Postman 安装及使用入门教程

    安装 本文只是基于 Chrome 浏览器的扩展插件来进行的安装 xff0c 并非单独应用程序 首先 xff0c 你要台电脑 xff0c 其次 xff0c 安装有 Chrome 浏览器 xff0c 那你接着往下看吧 1 官网安装 xff08
  • k8s通过service访问pod(五)--技术流ken

    service 每个 Pod 都有自己的 IP 地址 当 controller 用新 Pod 替代发生故障的 Pod 时 xff0c 新 Pod 会分配到新的 IP 地址 这样就产生了一个问题 xff1a 如果一组 Pod 对外提供服务 x
  • 计算机图形学在GIS中的应用,GIS在交通中的应用与发展-

    xff27 xff29 xff33 在交通中的应用与发展 摘 要 xff1a 地理信息技术的日臻成熟为 xff27 xff29 xff33 在交通领域内的广泛应用创造了一定基础 本文总结了 xff27 xff29 xff33 技术的特点 x
  • 查询MYSQl数据表中的最后一条记录

    mysql select from table order by id DESC limit 1 oracle select from emp where id in select max id from emp 实例 xff1a mysq

随机推荐

  • Windows 10 替换 cmd 的命令行工具

    最近找 Windows 10 的命令行工具 xff0c 发现了 Windows 自带的 PowerShell xff0c 确实功能强大 推荐 查找方法 xff1a 搜索 xff0c PowserShell 打开就能用 https www z
  • 压控恒流源电路

    http bbs 21ic com forum php mod 61 viewthread amp tid 61 1634988 amp highlight 61 4 20ma 最简单简陋的电流输出电路 xff0c 是用 三级管 43 放大
  • OFFBOARD

    Pixhawk的offboard模式 xff0c 是指我们不用遥控器操控飞机 xff0c 也不用地面站给它设定plan 直接用飞机上的板载计算机来与Pixhawk进行通信 xff0c 控制飞机运动 准备工作 xff1a 首先要有一个板载计算
  • 思考: 从曲线中提取出近似直线的一段

    这个问题也是别人问我的 我思考了一些时间 希望抛砖引玉 得到更好的方法 问题是这样的 有一些离散的点 在坐标系中把它们拟合成一条曲线 其中有一段看上去很像是直线 现在要求出这段 34 直线 34 的起始坐标和结束坐标 并把这条线的方程求出来
  • 课程第一天内容《基础交换 一 》

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 项目流程介绍 xff1a 前期 中期 后期 xff1b 项目任务分解 xff1a 工具 甘特图 xff1b 任务 时间 负责人 xff1b 网络设备介绍 xff1a 交换机
  • hewlett-packard 设置 HP启动设置

    开机按 F8进入高级选项安全模式 F9进入启动顺序选择项 F10进入双系统选择项 ESC进入启动选项键选择界面 Delete键进入BIOS please select boot device 请选择启动装置 UEFI boot source
  • 收藏了很久的:5款电影网站!高清大片任意看!就没有找不到资源!

    一放假就剧荒 xff1f 没有时间去电影院看 xff1f 那这5款电影网站你很需要 xff01 Top1 xff1a 中国高清网 各种大片任意看 xff01 最新上映还是好莱坞大片 xff0c 想看什么就看什么 xff01 还怕剧荒 xff
  • 如何查看MySQL数据库的版本

    如何查看MySQL数据库的版本 一 总结 一句话总结 xff1a SQL语句 xff1a select version 命令行 xff1a mysql V 或 mysql version 二 三种方法查看MySQL数据库的版本 转自或参考
  • mysql数据库,变长字符串、定长字符串区别

    变长字符串 varchar varchar 255 所占资源空间是你存储内容的长度 定长字符串 char char 8 不管你存储内容的长度是多少 xff0c 它所占空间就是8 xff0c 如果存储内容长度大于8 xff0c 则会被截取 所
  • How do I install Active Directory on my Windows Server 2003 server?

    How do I install Active Directory on my Windows Server 2003 server by Daniel Petri January 8 2009 Printer Friendly Versi
  • 301. Remove Invalid Parentheses

    Remove the minimum number of invalid parentheses in order to make the input string valid Return all possible results Not
  • matlab练习程序(图像水平/竖直移动)

    cl delta x 61 67 要求为整数 xff0c 水平移动的偏移量 xff0c 正为向右 xff0c 负为向左 delta y 61 89 要求为整数 xff0c 竖直移动的偏移量 xff0c 正为向下 xff0c 负为向上 img
  • 第二章 M文件程序设计(matlab)

    Contents 第二章 M文件程序设计M文件一 程序控制结构1 顺序结构1 数据的输入input2 数据的输出disp 输出字符串或者矩阵3 程序的暂停 pause Ctrl 43 C 延迟的秒数 2 选择结构1 IF语句2 switch
  • 无人机二次开发硬件清单

    四旋翼系统 3D Robotics IRIS 43 飞控 功能组件 eBumper4 声呐避障模块 组合功能 DJI Matrice100 43 Guidance 43 Onboard SDK
  • npm install报错解决方法ls-remote -h -t git://github.com/adobe-webplatform/eve.git

    npm install 时报错 xff0c 使用ssh 和 https 重新克隆代码都不行 xff0c 以下是解决办法 npm ERR usr local bin git ls remote h t git github com adobe
  • reStructuredText文件语法简单学习

    reStructuredText 是一种扩展名为 rst的纯文本文件 xff0c 通过特定的解释器 xff0c 能够将文本中的内容输出为特定的格式 1 章节标题 章节头部由下线 xff08 也可有上线 xff09 和包含标点的标题组合创建
  • [Hadoop 周边] 浅谈大数据(hadoop)和移动开发(Android、IOS)开发前景【转】

    原文链接 xff1a http www d1net com bigdata news 345893 html 先简单的做个自我介绍 xff0c 我是云6期的 xff0c 黑马相比其它培训机构的好偶就不在这里说 xff0c 想比大家都比我清楚
  • 无代理防毒:虚拟化与安全的深度融合

    当今 xff0c 用户对虚拟化和云计算平台的需求正在呈现爆发趋势 然而 xff0c 虚拟化技术其实是一把双刃剑 xff0c 它具有更高效率地利用计算 存储资源等优势 xff0c 但这些优势都依赖于虚拟化系统资源高度集中的特性 xff0c 但
  • 计算机专业找工作注意什么

    为什么80 的码农都做不了架构师 xff1f gt gt gt http www java sh Sharing qzjq 1722 html 几年前市场对计算机专业人才的需求非常大 xff0c 计算机专业红得发紫 xff0c 毕业生是 皇
  • 解析Linux C/C++开发的难度到底在哪

    解析Linux C C 43 43 开发的难度到底在哪 经常被问到的问题 如何学习C 43 43 如何学习Linux 如何开始 xff1f 其实这个问题对于不同的人答案往往不尽相同 xff0c 每个人所处的环境就不同 一个普遍的现象是有一些