我在Windows中拥有多年的C ++编程经验。现在我需要为Linux编写一些应用程序。是否有任何资源可以帮助我快速获得有关C ++开发人员可用的Linux技术的必要信息?
答案 0 :(得分:4)
Linux下的C ++编程在核心上并没有那么不同。 Linux编译器通常比MSVC更符合标准;然而,随着MSVC成为更好的编译器,这种情况正在发生变化。区别在于环境和可用库。 Visual Studio不可用(显然),但Visual SlickEdit和Eclipse等其他一些环境都可用。
构建系统变化很大,可能取决于您在Gnome,KDE或永远存在的命令行之间的偏好。就个人而言,我发现后者是最干净,最一致的。如果您最终到达命令行,请了解GNU Make并获取GNU Autoconf, Automake, and Libtool的副本。这将很好地介绍GNU命令行开发栈。
调试有很多不同,因为VS提供了一个很好的GUI调试环境。大多数Linux环境只是使用GUI包装命令行调试器(通常是gdb)。如果你期望一个很好的集成调试器,结果是不太令人满意的。我建议你习惯使用gdb。有一些decent tutorials for gdb online。只需google即可。一旦你有点舒服,read the online manual就能找到真正的东西。
另一种选择是使用与窗口系统一起打包的任何开发环境,或使用Eclipse和some C++ plug-in
之类的东西关于这个主题的书籍,Advanced Programming in the UNIX Environment是必读的。 UNIX Systems Programming也是一个很好的阅读,因为它为你提供了坚实的贝壳,过程以及其他方面的基础。我会推荐POSIX Programmer's Guide和POSIX.4 Programmer's Guide,因为它们会为你提供很多系统编程。
所有这些都说明了,尽情享受真正迎合程序员的操作系统;)
答案 1 :(得分:3)
我正在为一个程序立即从Windows切换到Linux,到目前为止,我发现man
和grep
很棒。我没有在MSDN(或类似)中查找函数原型,而是使用man
。
如果我需要一个代码示例,grep
通过与我有一些相似之处的现有项目是一个很大的帮助。或者,如果有一个类似的项目足以保证这一点,那么设置LXR的代码库以便更容易地进行阅读确实有很大帮助。
一般来说,Linux的开源特性是学习在Linux上编程的最佳资源。
史蒂文斯的Advanced Programming in the UNIX Environment也是一个巨大的福音。但至于IDE等,请称我为luddite,但我喜欢vim
和make
。
答案 2 :(得分:2)
我从马修和石头的Beginning Linux Programming那里学到了很多,虽然它比C ++更多的是C语言。
答案 3 :(得分:1)
我使用die.net并在The Open Group的网站上查找了很多,http://www.opengroup.org/onlinepubs/000095399/functions/ {function} .html。它们与man具有相同的信息。我使用SciTE,并将C API和Open Group POSIX查找作为热键,如here所述。