当前位置:C++技术网 > 资讯 > 关于windows开发转Linux开发

关于windows开发转Linux开发

更新时间:2017-04-20 23:36:31浏览次数:1+次

你好,我是一名应届毕业生,马上面临毕业,在读研期间主要使用vs进行图像处理方面的开发工作,毕业工作已经定了,工作主要是在Linux平台下进行相关开发工作,现在对于linux系统仅仅停留在接触过的阶段,并未真正linux平台上进行过开发,想请问工作前需要做一些什么样的准备工作?另外,我所知道的,好多人进行linux开发工作是把代码加载到windows上用source insight这些工具来查看源代码和编辑等,但是这么做好像对于源代码的编译调试就没那么方便了,如果是在Windows下进行Linux的开发的话,关于这方面的话有什么建议的吗?非常感谢。

C++技术网会员解答:

    您好,感谢你对C++技术网的支持和信任,如果觉得我们的解答不错,记得多推荐哦。

    首先,对于Linux的学习是必须的。对于Linux的学习包括对Linux系统的认知和使用。我们之所以很熟悉Windows,因为我们无时无刻不在使用他。在心理层面来讲,我们是熟悉的。而对于Linux,我们接触的少,所以才心理上是畏惧的。不过,一回生两回熟,万事都有一个过程。既然你今后确定是往Linux上发展,那么认知Linux系统、熟悉Linux系统的使用是最基本的。

1.认知Linux系统

    认知Linux系统是去了解操作系统的各种机制,比如文件系统机制。Linux系统的发展背景,各种开源的东西。建议多浏览Linux系统相关的网站和资讯。

2.熟悉Linux系统的使用

    Linux系统的使用,你可以安装一个虚拟机,虚拟机里面安装Linux系统。不同的Linux系统会有差异,比如Centos和乌班图,都是Linux系统,但是不一样。至于为什么不一样,有什么不一样,这就是认知系统和熟悉使用的事了。只有多看多了解,才会越来越熟悉。

    然后,我们需要熟悉Linux的脚本使用。脚本对于Linux来说非常重要。Linux通常用在服务器上,对于服务器来讲,很多系统是不会按照图形界面的,毕竟图形界面太耗资源了。我们需要使用脚本来帮助我们快速部署和使用。而且,脚本的使用确实可以让我们很多工作都自动化。在Linux系统管理员的工作中,脚本使用必备基础。

    以上的学习,主要就是直接使用Linux系统。不需要太多的理论学习,也不是学习理论就搞的定的。也不一定说要学的很深入,但是至少常用的一些操作和结构之类的要知道。比如Linux的目录结构、基本的命令使用等。这个就推荐看一本书,即《鸟哥的私房菜》。看书是了解基础,认知操作系统,学习命令的使用,而掌握系统的使用,就需要实际使用了。

    而在Linux上编程,需要基本上述的基础,否则举步维艰。因为你可能都不知道将代码编译出来,如何运行程序。对于编程,其实也就好说了。

1.编程语言

    编程语言是跨平台的,利用编程语言写的程序,可以在不同的系统上编译。这可以让我们忽略系统的差异。我们用C语言写的读写文件的代码,我们可以在Windows上编译使用,也可以在Linux上编译使用。所以仅仅对于编程来讲,仅仅对于编程语言来讲,差异不大。如果C语言已经学的很好,这个就可以不用再针对Linux学一遍了。

2.Linux的系统API

    不过如果想直接调用操作系统的API函数,那么就和Windows上的API差异很大了。首先最直观的就是函数、变量命名风格很不一样。然后就是各种功能机制有差别。Linux上很多机制,Windows上没有。Windows上的机制,Linux上没有。所以这需要我们专门去学习了解Linux系统的机制。这个了解就不是熟悉Linux使用了,而是深入系统学习,很专业的。我们要知道系统的文件读写、线程进程使用、进程线程通信和同步等。程序、函数库的编译和使用等等。编程的在C++技术网的用户中心的会员资料有Linux编程学习的视频教程,可以快速学习一遍。

    而对于如何做Linux开发,用什么用于,如何调试,那是另外一回事。如果你习惯在Windows上开发了,那你尽管用VS做开发。用自己最熟悉的工作做开发就是最高效的。当然你得有一个不错的开发IDE。Windows上做开发也就推荐VS了。我个人就是主要在VS做开发的。不管是Windows软件开发,还是Web开发,还是Linux开发,全部都在VS上进行。我知道很多人用source insight查看代码,编辑代码,但是对于项目的管理、编译调试确实还是很不方便。我也不再追求所谓的Linux开发的套装,就用自己熟悉的就行了。

    我选择的方式就是VS+VisualGDB,或者VS2017。这样就够了。开发工具没有必要搞得那么多,会分散我们的精力。VisualGDB相关的文章,请参考:VisualGDB相关介绍文章

    另外,GDB远程调试的原理和使用,请看文章《gdb远程调试原理和远程调试gdbserver环境安装》。有了这些介绍,你就可以轻松用VS开发Linux程序了。