嗨我真的很沮丧,首先我不知道如何编写非常复杂的代码(make文件),所以我使用的是IDE,这样可以减轻我的工作(netbeans,eclipse,Kdevelop ...等)我几乎尝试了以
开头的所有事情你可能会认为我很懒或很快就放弃了但是我发誓我已经搜索了很多并阅读了每个人的教程,这些教程充满了大量的信息,没有任何身体需要开始。我想我们是在编程领域缺乏良好的文档。你可以在(Boost图书馆网站)中看到这一点,我真的希望有人能给我一些有用的方法来解决这些问题。
要么我最终会阅读我不需要的CMAKE详细信息,并记住EMACS快捷方式(CTRL x CTRL bla bla)并放弃2010年舒适易用的IDE的想法!
感谢非常好的答案后,我认为这是必须的,我读到了关于CMAKE,makefile概念。然后我的一半问题就会消失,而且我认为现在使用IDE让我无法理解“Make”的东西,因为我计划在Linux上进行长期开发,所以不会有帮助
感谢简单明了的答案。
p.s(Qt创建者非常棒!它非常简洁,干净且用户友好)
许多周后:Guys Eclipse是最好的!认真的:) Emacs很好,但也许是一个想要提高他的写作技巧的初学者,但过了一段时间它将是乏味的工作,你需要快速完成任务!
我不知道为什么我回到这里,我想这是我最喜欢的问题,现在是一年,是的我仍然在使用Eclipse,我发誓这不是一个宣传(年份现在直到现在)我真的就像eclipse并支持它一样,它是免费的,而且仍然令人惊叹的事实是让我为它辩护,Eclipse现在是我的游乐场仍然不是它的专家,无论如何我不应该再写了因为它会变成博客或其他东西,
就像说最初不要轻易放弃它可能会让你节省时间..
答案 0 :(得分:13)
也许你可以尝试qt creator,它专为开发QT应用程序而设计,但你可以将它用于其他c ++程序。它支持cmake。
答案 1 :(得分:4)
答案 2 :(得分:3)
我发现这些IDE在Linux上很有用:
SOURCES=main.cpp hello.cpp
all:
g++ $(SOURCES) -o hello
注意:在g++ ..
行前面使用实际的 TAB 而不是4个空格。
就是这样。
答案 3 :(得分:2)
答案 4 :(得分:2)
对于emacs中的自动完成,我使用(在我的.emacs文件中):
(require 'completion)
(global-set-key "\C-\\" 'complete)
它至少需要三个字符,然后向后搜索第一个类似命名的标记。 (您可能还想启用字体锁定和C ++模式。)
Emacs确实有很长的学习曲线。但它非常强大,非常可定制,而且非常有用。您总是可以从一小部分命令开始,然后从那里开始增长。有一个内置的教程模式(Ctrl-h t)。而像(Ctrl-h B)或(Ctrl-h k)这样的东西可以帮助你找出各种键正在做什么。
对于简单的测试程序,要在TCSH下编译,我使用:
alias tgcc 'g++ \!:* -o \!:1:r -Wall ; if ( $status == 0 ) ./\!:1:r'
tgcc foo.C
对于更复杂的系统,makefile是必不可少的!在Fedora(和其他版本)的linux下,通过emacs“info”在GNU-Make系统上有很好的文档。或者尝试:
http://www.gnu.org/software/make/manual/make.html
总的来说,makefile随着时间的推移变得复杂。他们通常不会这样开始。我们有一组源文件。从这些源文件派生的一组对象文件,通常通过简单的替换规则。从这些目标文件的子集派生的库。从各种目标文件和库派生的二进制文件。也许是在这些二进制文件上运行的测试程序。也许测试输出我们想要将测试程序与回归测试进行比较。也许我们要打包到tarbar中的文件集。也许我们要在清理时删除的文件集。等
规则很简单。您可以定义数据集(通常是文件名),应用命令集的规则,以便从现有数据(文件)和依赖项创建新数据(通常是文件名),以便您知道何时重新创建。
说真的,阅读手册,从简单开始,然后从那里构建......
PS:尝试将这些规则(不是第一条规则!)添加到您的(GNU)makefile中:
echo-%:
@echo $* == "\"$($*)\""
echoraw-%:
@echo "$($*)"
现在你可以说“make echo-CC”来查看变量CC的设置。它对调试很有用......
永远记住规则后面的行以标签开头!
答案 5 :(得分:1)
嗯..你检查过你安装的JVM版本了吗?我同时使用Eclipse(带CDT)和Netbeans(这是一个出色的C ++ IDE恕我直言)。我遇到过Eclipse的问题(通常索引数百个文件有时会导致内存耗尽,但你可以使用命令行选项来控制JVM可以使用多少内存)。
为了自我改进,我建议你阅读一个关于makefiles的教程,那里有很多,谷歌是你的朋友。无论IDE在提供makefile方面有多好,通常如果您为存储库提供源代码,则很难使用生成的makefile。
答案 6 :(得分:1)
我也尝试了几个IDE。包括eclipse和一切。最后我只使用了emacs(X版本)和automake / autoconf。对我来说,创造一些东西是禁食的方式。此外,它几乎适用于所有机器,并且大部分时间已经安装或易于安装。
我同意它有一个陡峭的学习曲线但是当你最终有一个简单的hello world类型的应用程序时,你可以重复使用makefile来进行更大的项目。
对于automake / autoconf,我使用以下网站来学习它:
对于emacs,我只是按照附带的教程。此外,您不需要记住开始使用X版emacs的那么多关键笔画。
(顺便说一下:要求对emacs进行自动完成here)
答案 7 :(得分:1)
虽然你正在寻找与IDE相关的东西并生成make文件..等等。我更喜欢简单和语法高亮的“vim”
答案 8 :(得分:1)
你应该再试一次kdevelop,这真的是值得的! 4.x版本提供了非常好的C ++代码完成和编码帮助。 我的问题是,您必须首先为“Hello world”示例创建一个“启动配置”(查看Run-> Configure Launches ...)
答案 9 :(得分:0)
另一种方法是使用优秀的编辑器并将其与使用半自动构建系统相结合
经典是autoconf / automake ....如果你打算写真正的便携式东西,那么这就是它的地方。它有一个陡峭的学习曲线,但有效。它是开源的通用构建系统
boost有一个名为jam的构建系统,这是非常好的
我相信还有其他人
对于记录我使用slickedit与auto *和plain ole gdb
答案 10 :(得分:0)
我经历了同样的痛苦。我想使用windows和linux版本,所以我可以做跨平台工作。
我可能最终会尝试选择一个可以交叉编译的更好的ide。
答案 11 :(得分:0)
Kdevelop版本4仍然不够稳定。在4.0版本(ubuntu 10.10附带)中,执行按钮始终为灰色,并且一直崩溃。
尝试第3版 - 非常好。