我决定离开我的窗户安装的背后和我现在正在运行为Debian我的默认的操作系统。我一直在窗户和具体Visual Studio.我目前想获得用于编制我的代码下。

虽然我还有很多的文件来阅读,并不期望你们让我太容易,它还是好得到一些指针从哪里开始。我有一些具体问题,但是随时提出/建议任何其他有关问题。

  • 什么是被推荐的指南在建立一个作文件,我怎么汇编从这个生成文件(我叫克++我自己,我使用"make"?)
  • 看着其他linux的软件,他们几乎总是似乎有一个"配置"的文件。究竟是什么呢?不仅检查,如果需要的图书馆安装或的确它不仅仅是检查的要求?
  • 我怎么库的链接,以及如何这涉及到我的生成文件或g++参数?在windows我将汇编图书馆,包括一些标题的文件,告诉我的接头什么额外的lib文件的链接,并复制dll文件。究竟如何这一进程的工作在linux?
  • 建议代码编辑?我目前正在使用的纳米和我已经听到的vim和emacs,但不知道是什么好处,他们是在彼此的.是否有任何其他人,并为什么我会认为他们超过任何前三?注:我不是在寻找一个IDE。

任何帮助,链接到指南和文件(最好是那些旨在初学者)都非常感谢!

有帮助吗?

解决方案

什么是被推荐的指南在建立一个作文件,我怎么汇编从这个生成文件(我叫克++我自己,我使用"make"?)

你建立自makefile通过调用"作出"。和你的生成文件,编译和链接,使用克++和ld。

看着其他linux的软件,他们几乎总是似乎有一个"配置"的文件。究竟是什么呢?不仅检查,如果需要的图书馆安装或的确它不仅仅是检查的要求?

这是一个脚本,通常用来设立了各种事情根据环境正在使用的建筑。有时这只是一个基本脚本,其他时间调用的工具,如Autoconf发现什么时可使用的建筑。"Configure"script通常也是地方的用户指定的各种可选择的事情要建立或者排除在外,如支持用于实验的特点。

我怎么库的链接,以及如何这涉及到我的生成文件或g++参数?在windows我将汇编图书馆,包括一些标题的文件,告诉我的接头什么额外的lib文件的链接,并复制dll文件。究竟如何这一进程的工作在linux?

ld是GNU接头。你可以援引它分开(这是大多数生成文件将最终会这样做),或者你可以有g++委托给它。你的选择传递给克++和ld确定哪里可以找到用于包括标题、库链接,以及如何输出结果。

建议代码编辑?我目前正在使用的纳米和我已经听到的vim和emacs,但不知道是什么好处,他们是在彼此的.是否有任何其他人,并为什么我会认为他们超过任何前三?注:我不是在寻找一个IDE。

Vim和Emacs是非常灵活的编辑人员,支持一大堆不同的用法。使用什么感觉最好的给你,但我建议你可能要几个小东西想法突出强调。

其他提示

只是注意到去与MandyK的答案。

创造使文件通过手通常是一个非常无法移植的方式建立跨linux发行版的/unix变体。有很多建立系统自动产生作文件,建立没有使文件。 GNU Autotools, Cmake, Scons, 果酱, 等等。

还要走得更深入的大约配置。

  • 检查提供编译器、图书馆系统的架构。
  • 让你的系统匹配的适当兼容包装清单。
  • 您可以指定命令行辩论到专门建造、安装路径选择的软件包等。
  • 配置后产生一个适当的生成文件的具体系统。

是什么建议的指南 创造一种使文件,我怎么汇编 从这个生成文件(我叫克++ 我自己,我使用"make"?)

我学会了如何写入生成文件的读取 GNU作手册.

看着其他linux的软件,它们 几乎总是似乎有一个 "配置"的文件。究竟是什么不它 做什么?不仅检查,如果需要的 图书馆安装了或不会 超过只是检查的要求?

配置文件通常与 autotools.作为脚本的名称所表明的,它允许配置该软件。从这个角度的开发,这主要意味着设定的宏,其中确定变数,其图书馆提供的,这样的。它还试验性图书馆。在结束脚本生成一个GNU生成文件,然后你就可以用来建造和安装软件。

GNU建立系统只是其中之一。我特别不喜欢的GNU建立系统,因为它往往是比别人慢,并产生一个丑陋的Makefile。一些比较受欢迎的 CMake, 果酱(提高酱 可能感兴趣的用C++)和 waf.某些建立系统产生的生成文件,而其他人提供一个完全新的生成系统。为简单的项目编写一个生成文件的方面将是容易的,但是,"依赖性检查"(图书馆,等等)还必须手动完成的。

编辑: 布莱恩Gianforcaro 也指出了这一点。

你的问题是有点太大,但这里是我会电子书籍:

  • 编辑:vim和emacs是受欢迎的。什么最重要的,与大多数的工具,掌握一种。我喜欢用vim因为vi(其后裔)是随处可见,但这可能不是非常相关的,特别是如果您留在Linux。任何编辑。

  • 配置:除非你做的大型项目,不要打扰。它是一场噩梦来使用和调试。它才有意义,如果你打算分发项目-在这种情况下,阅读autobook: http://sources.redhat.com/autobook/.其他所述,有替代品(cmake,scons,etc...).我很熟悉这两个scons和autotools,但我还是使用小型(两文件)的项目。

关于共用图书馆:它几乎是作为窗户,除了,你的链接对共用图书馆直接-没有.lib vs。dll区别在Linux。例如。对于一个图书馆foo与function foo:

int foo(void)
{
     return 1;
}

你会建如下:

gcc -fPIC -c foo.c -o foo.o
gcc -shared foo.o -o libfoo.so

一个主要(当然在现实生活中,你把API在一个标题的文件):

int foo(void);

int main(void)
{
    foo();
    return 0;
}

然后,你的链接,如:

gcc -c main.c -o main.o
gcc main.o -o main -L. -lfoo 

的-L.是在这里说你想的接头来看,在目前的目录(违反windows,这是从来没有做过默认情况下,在Linux)、lfoo说链接针对库foo。

所以要得到你开始,我将首先一点你这个 指南 对于生成文件,它还包括一些联东西太多。
它只是一个小东西是我的大学计算机科学教授给我我发现它是非常清楚和简明的,非常有帮助。

而作为一个IDE,我用 日食 通常,因为它处理所生成文件。没有提到编制和输出标准是正确的,在你的指尖的程序。
它主要用于Java发展,但是有一个C/C++插件呢!

我推荐的书 艺术的Unix编程 通过ESR。它涵盖了选择的编辑、编程语言,等等。它还提供了一个良好的意识的心态背后编程上的Unix和Linux系统。

编辑,你可能想要的任Vim或Emacs。他们是两个不同的,哪一个更好更多的是个人品味比其他任何东西。我用Vim。这是伟大的快速移动代码,作出改变。我不喜欢Emacs的多,但许多人做的。Emacs极和可扩展的可用于一切从新闻阅读器ide。都试一下,看看你喜欢什么。

  • 建议代码编辑?我目前正在使用的纳米和我已经听到的vim和emacs,但不知道是什么好处,他们是在彼此的.是否有任何其他人,并为什么我会认为他们超过任何前三?注:我不是在寻找一个IDE。

如果你使用Linux与一窗口管理(KDE,Gnome,等等。) 你也可以考虑采用的标准文本编辑器窗口的管理。主要受益,它将有超过vim/emacs/纳米是,它似乎更为熟悉,一个来自Windows环境的一个编写上运行的窗口管理有一个菜单吧,打开文件/保存的对话,消除/重复,以及大量的其他简洁的功能,控制台的编辑人员可能不匹配。(虽然emacs和vim是相当复杂的,这些天,所以谁知道;P)

在KDE(这是什么我的使用),我可以推荐KWrite,这是一个良好的功能的,但相当基本的文本编辑器法强调;或者凯特,这是一个更好的文本编辑器的一些额外的功能:会议管理,内终端小组,自动调用的 make, 和几个插件,包括一个C/C++符号的观察者。我通常使用凯特我的C++的工作时,我不想打扰设立一个全IDE项目。(仅供参考IDE KDE是KDevelop)

建议代码编辑?我 目前使用的纳米和我已经听说过 vim和emacs,但不知道是什么 好处,他们是在彼此的.是否有任何其他人,并为什么我会 考虑他们超过任何前 三个?注:我不是在寻找一个 IDE。

Vi和Emacs的两个典型的Unix编辑;如果你是设定在使用一个文字编辑,而不是一个IDE,他们中的一个或其衍生物(vim,xemacs,等等)的路要走。既支持法突出显示和所有的种种特点,既可以默认情况下或通过扩展。最好的部分对这些编辑的是扩展他们提供;emacs通过各种各样的口齿不清,并vim通过其自己的脚本语言。

我个人使用Emacs的,所以我不能说很多关于Vim,但你应该能够找到很多相关信息都在网上。Emacs有几个良好的辅导和参考文献,包括 这一个.

编辑[Dec2014年]:似乎有一种趋势的跨平台和高度伸缩编辑。这可能是一个好的选择,如果你喜欢的东西不到一个IDE,但更多的图形比vi/emacs和地-感觉在多个平台。我让你看看 崇高的原子;这两个工作Windows/Linux/Mac和有伟大社区的插件和主题。

空间援引克++直接和使用autotools建立链是非常狭窄。好autotools,这是真正接近一个"项目"提供在Linux/开源世界。

有人来自Visual Studio,所有这一命令行事似乎神秘的和混乱。在你面前变成一个bash/vi/emacs毒瘾的,试了几个闺基础的工具,第一,所以你有一些过渡时间...

  • 脱4.5与其夸脱的创造者小IDE。这是最好的框架,光年之前的竞争。
  • 日食(C++)-从我的经验这个窗口,我找到它的令人惊叹(这可能是最好的Java应用程序没有写)
  • KDevelop
  • Anjuta
  • 如果你使用德尔菲,Lazarus/FreePascal是一个很好的选择。

我肯定longhairs会嗤之以鼻并要求vim或emacs给他们的最佳和最快的发展环境,但是不同的笔触不同的人。有人习惯于IDE将需要一些时间交换或不可能希望开关。对于所有其编辑能力,创造GUI应用程序是肯定不会一个工作80x25的工具。这需要多年来成为一个专家命令行方面的事情,其多变的世界观,比其他任何东西。

作为一个侧面说明之间的适当答案在这里..如果你想撞击地面运行为Windows家伙,我建议在新的 脱SDK.这会感觉像家一样:-)

我建议使用SCons在地方做,它不会同样的工作,但它容易使用和处理的盒子怎么做的动态图书馆、依赖关系,等等。在这里,它是一个现实生活中的例子为一个简单的prog

env = Environment()
env.Append(CCFLAGS='-Wall')
env.Append(CPPPATH = ['./include/'])

env.MergeFlags('-ljpeg')
env.ParseConfig("sdl-config --cflags --libs")
env.ParseConfig("curl-config --cflags --libs")
env.ParseConfig("pkg-config cairo --cflags --libs")

env.Program('rovio-pilot', Glob('./src/*.cpp'))

作为一个文本编辑器,我很高兴与JEdit的编码,但它是一个品味的问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top