当前位置:  开发笔记 > 编程语言 > 正文

Linux上的C++开发 - 我从哪里开始?

如何解决《Linux上的C++开发-我从哪里开始?》经验,为你挑选了3个好方法。

我决定让我的Windows安装后面,我现在运行Debian作为我的默认操作系统.我总是用Windows编写,特别是用Visual Studio编写.我目前正在尝试习惯在linux下编译我的代码.

虽然我仍然有大量的文档要阅读,并且不要指望你们让它对我来说太容易了,但是对于从哪里开始获得一些指示仍然很好.我有一些具体的问题,但随时建议/推荐有关该主题的任何其他内容.

有关创建make文件的建议指南,如何从这个makefile编译(我自己调用g ++,我是否使用'make'?)

看看其他linux软件,他们几乎总是看起来有一个'configure'文件.它到底是做什么用的?它是否仅检查是否安装了所需的库,还是仅仅检查要求?

如何链接库,以及它与我的makefile或g ++参数有何关系?在Windows中我会编译库,包含一些头文件,告诉我的链接器要链接哪些附加的lib文件,并复制一个dll文件.这个过程究竟是如何在linux中运行的?

代码编辑的建议?我目前正在使用nano,我听说过vim和emacs,但不知道它们对彼此有什么好处.还有其他人,为什么我会考虑过前三个中的任何一个?注意:我不是在寻找IDE.

任何帮助,指南和文档的链接(最好是针对初学者的那些)非常感谢!



1> 小智..:

有关创建make文件的建议指南,如何从这个makefile编译(我自己调用g ++,我是否使用'make'?)

您可以通过调用"make"从makefile构建.在makefile中,使用g ++和ld进行编译和链接.

看看其他linux软件,他们几乎总是看起来有一个'configure'文件.它到底是做什么用的?它是否仅检查是否安装了所需的库,还是仅仅检查要求?

它是一个脚本,通常用于根据用于构建的环境设置各种内容.有时它只是一个基本的shell脚本,有时它会调用Autoconf之类的工具来发现构建时可用的内容."configure"脚本通常也是用户指定要构建或排除的各种可选事物的位置,例如支持实验性功能.

如何链接库,以及它与我的makefile或g ++参数有何关系?在Windows中我会编译库,包含一些头文件,告诉我的链接器要链接哪些附加的lib文件,并复制一个dll文件.这个过程究竟是如何在linux中运行的?

ld是GNU链接器.你可以单独调用它(这是大多数makefile最终会做的),或者你可以让g ++委托给它.传递给g ++和ld的选项决定了在哪里查找包含的标题,要链接的库以及如何输出结果.

代码编辑的建议?我目前正在使用nano,我听说过vim和emacs,但不知道它们对彼此有什么好处.还有其他人,为什么我会考虑过前三个中的任何一个?注意:我不是在寻找IDE.

Vim和Emacs是非常灵活的编辑器,支持大量不同的用法.使用对你最好的方法,不过我建议你可能需要一些最小的东西,比如语法高亮.



2> Brian Gianfo..:

只需要注意MandyK的答案.

手动创建make文件通常是构建跨linux发行版/ unix变种的一种非常难以处理的方式.有许多构建系统可用于自动生成make文件,无需make文件即可构建.GNU Autotools,Cmake,Scons,jam等

还要更深入地了解配置.

检查可用的编译器,库,系统架构.

确保您的系统与相应的兼容包列表匹配.

允许您指定命令行参数以专门化您的构建,安装路径,选项包等.

然后,Configure会生成特定于您系统的相应Makefile.



3> sebnow..:

有关创建make文件的建议指南,如何从这个makefile编译(我自己调用g ++,我是否使用'make'?)

我通过阅读GNU Make手册学会了如何编写makefile .

看看其他linux软件,他们几乎总是看起来有一个'configure'文件.它到底是做什么用的?它是否仅检查是否安装了所需的库,还是仅仅检查要求?

配置文件通常与autotools相关联.正如脚本的名称所示,它允许您配置软件.从开发人员的角度来看,这主要意味着设置宏,它确定变量,哪些库可用,等等.它还测试库的可用性.最后,该脚本生成一个GNU Makefile,然后您可以使用它来实际构建和安装该软件.

GNU构建系统只是其中之一.我并不特别喜欢GNU构建系统,因为它往往比其他系统慢,并生成一个丑陋的Makefile.一些比较流行的是CMake,Jam(Boost Jam可能对C++感兴趣)和waf.一些构建系统只是生成Makefile,而其他构建系统提供了一个全新的构建系统.对于简单的项目,手工编写Makefile很容易,但是"依赖性检查"(对于库等)也必须手动完成.

编辑:Brian Gianforcaro也指出了这一点.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有