一尘不染

如何开始在* nix上进行开发

linux

对于使用g ++和gdb的入门,是否有很好的“使用方法”或“入门”指南?

一些背景。体面的程序员,但到目前为止,我已经在Windows中的Visual Studio中完成了所有工作。

我对使用终端来编译文件有一点经验(除了.h和1或2 .cpp以外)。但是除此之外。

任何人都知道如何开始在Linux上编码的好入门?


阅读 268

收藏
2020-06-03

共1个答案

一尘不染

阅读一些好书,特别是Advanced Linux
Programming
Advanced Unix
Programming
。另请阅读高级bash脚本指南Linux
Documentation Project中的
其他文档

显然,在笔记本电脑上安装一些Linux发行版(不是在某些VM中,而是在实际磁盘分区上)。如果您有类似debian的发行版,请aptitude build- dep gcc-4.6 gedit在其上运行以获取许多有趣的开发人员软件包。

学习一些命令行技能。学习使用man命令;安装manpages和安装manpages-dev软件包后,键入man man(使用空格键“滚动文本”,然后q退出该键)。另请阅读intro(2)手册页。当您忘记了如何使用cptry等命令时cp --help

即使对于一个人的小型项目,也要使用git之类的版本控制系统。

备份文件。

阅读有关Linux内核系统调用免费软件X11PosixUnix的几个相关的Wikipedia页面

尝试使用命令行。例如,尝试在命令行上进行一周或更长时间的所有操作。避免使用台式机,也不要使用鼠标。学会使用emacs

阅读有关GNU
make之
类的构建器程序的信息

从其源代码(例如,从sourceforgefreecodegithub)中检索几个免费软件,并练习构建和编译它们。研究他们的源代码

在命令行中(在终端中)启动的基本技巧(如果未找到命令,则需要安装提供该命令的软件包)。

  • 奔跑emacs; 有一个教程菜单;练习半个小时。

  • 编辑helloworld.c程序(通过main调用某些hello功能)

  • 用它编译gcc -g -Wall helloworld.c -o helloworld; 改进您的代码,直到没有警告。总是传递-Wallgccg++得到几乎所有警告。

  • 用它运行 ./helloworld

  • 使用调试它gdb ./helloworld,然后

    1. 使用help命令
    2. 使用b main命令在其中添加断点main,同样为hello函数添加断点。
    3. gdb使用下运行它r
    4. 用于bt获取回溯
    5. 用于p打印一些变量
    6. 用于c继续执行已调试的程序。
    7. 写一个小东西Makefile,能够使用来构建您的helloworld程序make
  • 了解如何从Emacs内部调用make(with M-x compile)和gdb(with M-x gdb

了解有关valgrind的更多信息(检测大多数内存泄漏)。也许考虑在某些应用程序中使用Boehm的GC

2020-06-03