CONFUSED - c ++第三方库,c ++新手

时间:2008-10-23 07:00:51

标签: c++ qt

(mingw32,windows xp) 您好,我正在尝试从Java迁移到c ++。关于查找,安装和编译非标准c ++库,我感到困惑和沮丧。在Java中,它非常方便,它们填充了java标准API中所需的所有功能和文档。是否有必要的c ++库列表,如线程,gui,网络,图像\音频处理,xml等等。在一个地方?或者可能,作为单个包提供?

我尝试安装QT库几周,它甚至都不会编译。在Java中,我曾经通过反复试验来学习功能的新方面,但如果我不能首先获取和运行新的API,那将是不可能的。

拜托,我需要你的建议,最初我想摆脱Java的抽象,但现在我只想在我决定自己开头之前能够使用c ++。

3 个答案:

答案 0 :(得分:2)

C ++标准库非常轻巧。它几乎不包含Java运行时或.NET CLR提供的功能。

Boost库为C ++添加了大量功能,但在用户界面方面并不多(如果有的话)。

对于用户界面,存在您要定位的平台的问题。如果它是Win32,那么你可以使用直接的Win32 API(主要是针对C设计的,但是有部分C ++包装器)。如果您想要跨平台,那么您正在考虑QT或GTK(尽管还有其他人)。

但是,正如安德鲁已经说过的那样:“为什么你还想学习C ++?”不要误会我的意思:我用C ++编程为生,并且实际上喜欢它(尽管我开始怀疑斯德哥尔摩综合症的情况)。如果我不得不重新开始,我会选择更现代的语言和环境(Java或C#;或Ruby或Python)。

答案 1 :(得分:1)

我的建议是:一步一步。

首先,弄清楚如何在代码中包含预构建的库。我建议从ZLib开始(它有一个非常简单的设计,它也是一个有用的工具)。一旦你有预先构建的库工作,删除它并尝试从源代码编译ZLib。如果您在任何时候需要帮助,请询问Stack Overflow,我们将帮助您解决问题。

当你开始工作时,你应该拥有编译和安装Qt所需的所有知识。

答案 2 :(得分:0)

线程,XML,网络,一些图像生成,编码和处理 - boost提供了这些。至于XML,例如Arabica - 它通过用一个很好的标准C ++气味包装它来抽象出特定于平台的库。

GUI部分是另一个问题。

有Qt,wxWidgets,带有c ++绑定(gtkmm)的gtk,每个平台的本机库及其C ++包装器(WTL是Win32的优秀库),但随着C ++标准的发展和提升成为标准的一部分( C ++ 0x即将推出),没有GUI框架可以利用这些标准设施并引入自己的标准设施。他们尽管做得很好。