解析Linux C/C++开发的难度到底在哪
3个回答
展开全部
相对于Linux下的C/C++开发,在windows下的初学者往往容易入门,原因是visual studio, 这个强大的工具隐藏了很多的细节,好多人甚至以为拖拖控件,写写消息响应函数就是软件工程师了,这点在入门的时候尤为明显。但是在这个强大工具的背后,隐藏了太多的东西,其中许多对于我们来说是非常重要的东西,比如Make, debug, call stack, 汇编代码,OS,哪些功能是系统提供的,哪些是工具提供的。所以很多人转过来的时候往往去类比以前windows的知识,但是又对不上,再加上无人指点,工作不用,可能慢慢的就会失去信心。
但是我认为作为一个有追求的软件工程师,如果不了解Linux, 我不认为他合格。对于软件工程师而言Linux给了我们另一个选择,另一种思路,同时也提供了我们很多的轮子和一座宝库。
如下总结出一些建议,希望对学习Linux开发的朋友有所帮助。
1. 不要一开始就去搞内核,先装上系统用Linux来完成一些日常的事情,比如:看电影,拷贝文件,添加修改用户,文件,学学shell 脚本。
2. 试着用命令行去编译一些简单的代码,然后逐步增加难度,然后学学make。
3. 学习Linux的一些基础知识,找本书看看。
4. 尝试自己去写一些小的东西,动起手来,别总看书而不去实践,实践出真知。
5. 学习如何调试代码。
6. 学习主要的一些系统调用,文件操作,socket操作等等。
7. 学习简单的驱动开发,比如:串口驱动。
8. 学习内核源代码。
另外在此需要指出的是,当你真正看透了Windows和Linux的软件开发的时候,你可能并不觉得他们有很大的区别,所谓殊途同归,说的可能就是这个道理,比如这两个平台的代码最后都会转换为IA32架构的指令序列,在转换过程中使用了不同的工具,反出来的汇编代码区别也不是太大。
但是我认为作为一个有追求的软件工程师,如果不了解Linux, 我不认为他合格。对于软件工程师而言Linux给了我们另一个选择,另一种思路,同时也提供了我们很多的轮子和一座宝库。
如下总结出一些建议,希望对学习Linux开发的朋友有所帮助。
1. 不要一开始就去搞内核,先装上系统用Linux来完成一些日常的事情,比如:看电影,拷贝文件,添加修改用户,文件,学学shell 脚本。
2. 试着用命令行去编译一些简单的代码,然后逐步增加难度,然后学学make。
3. 学习Linux的一些基础知识,找本书看看。
4. 尝试自己去写一些小的东西,动起手来,别总看书而不去实践,实践出真知。
5. 学习如何调试代码。
6. 学习主要的一些系统调用,文件操作,socket操作等等。
7. 学习简单的驱动开发,比如:串口驱动。
8. 学习内核源代码。
另外在此需要指出的是,当你真正看透了Windows和Linux的软件开发的时候,你可能并不觉得他们有很大的区别,所谓殊途同归,说的可能就是这个道理,比如这两个平台的代码最后都会转换为IA32架构的指令序列,在转换过程中使用了不同的工具,反出来的汇编代码区别也不是太大。
展开全部
主要是和Windows下开发的学习过程不一样,Windows下的IDE将所有的链接、库集成都坐在了看不见的地方,程序员只要写代码就好了,其他的事情有IDE操心。
我个人感觉最深的就是编译这个环节。在Windows的集成环境下,你只要点“Build”,所有的事情就结束了
Linux下一是全命令行,而且编译的编译器要自己安装,如果你有不同的头文件、库,还要自己操心链接的事情。为了这个事情,Linux有了make,automake,autoconf等等工具,每个都要学习
主要就是思路的转变,都学过来之后就会发现其实做的事情都是一样的,只不过Windows里的很多过程被忽略了(VS都帮你做了)
我个人感觉最深的就是编译这个环节。在Windows的集成环境下,你只要点“Build”,所有的事情就结束了
Linux下一是全命令行,而且编译的编译器要自己安装,如果你有不同的头文件、库,还要自己操心链接的事情。为了这个事情,Linux有了make,automake,autoconf等等工具,每个都要学习
主要就是思路的转变,都学过来之后就会发现其实做的事情都是一样的,只不过Windows里的很多过程被忽略了(VS都帮你做了)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
搞清库文件的位置,一堆编译参数的意思,就没难度了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询