我要调和这两个事实:
-
1。我感觉不舒服的Linux上的工作;
2。我需要为Linux开发软件。
一些背景:我10年的编程经验+的Windows(。几乎完全的C / C +,但一些网以及)的十年,我是FreeBSD的用户约3多年左右(然后返回到Windows在家),我从来没有使用Linux的运气。现在,我要为Linux开发软件。我需要一个计划。
在Windows上,你可以离开,只知道一种编程语言,你反对,你的IDE(VisualStudio)和一些很基本的工具进行故障排除(取决于,ProcessExplorer的,DebugView中,WinDbg的)编码的API。一切顺其自然。
在Linux上,这是一个非常不同的故事。我怎么会知道什么会加载DLL(对不起,共享对象),如果我链接Firefox插件到底如何?相当于在源代码中插入的__asm??的的诠释3/DebugBreak()和运行程序的Linux,然后让操作系统调用调试器是什么?为什么发行版本使用的东西,称为APPLOADER,而调试版本的工作有些不同呢?如何提供Linux开发环境:所有最坏的?
因此,考虑到我的仇恨可能不知道不够,你会建议?我确定用Emacs和GCC。我自己作为一个Linux的管理员/用户需要教育,我需要学习正确的故障排除工具(strace的是冷静,顺便说一句),等值,我上面提到的。
我需要从头开始做Linux的吗?还是我只需要读一些书吗?(我读过UNIX编程enviornment的Kernighan和高级编程...史蒂文斯,但我可以用更实际的东西。)我还是我家的电脑上需要有一些Linux发行版?
答:很多阅读...... (34票)
DarkDust回复:
您可能会发现文章在Linux和Windows动态链接有趣(它解释每个操作系统如何做动态链接)。文章共享库搜索路径解释如何被发现的库。也是静态的,共享的动态和可装载Linux的图书馆是非常好的。关于Linux库的一个好处是,他们有更好的版本和多个版本的库比Windows(据我所知,我没有做Windows)支持。看到该图书馆在Solaris和Linux的接口版本。这些文章真的应该让你与图书馆覆盖。
GDB是非常强大的,可能是一个很好的介绍RMS的GDB教程。你可能想读条件断点。为等值的__asm(3)看到在C堆栈溢出问题集断点或C + +代码编程基于Linux的gdb。
书先进的UNIX由马克Rochkind 编程是一定要读,恕我直言。它提供了大量的例子和POSIX / SUS的主题涵盖了所有在一个很好的解释方式。这是我读过到目前为止有关这个主题最好的书。
但是,为了使您的生活更轻松,其实我建议你使用高层API,抽象为你的东西,像Qt。它还将编写跨平台的轻松了许多。
从头开始做Linux的帮助你理解Linux系统是如何组成的,但我认为它并没有多大改善您从开发人员的观点,关于它的知识。然而,它会让你更舒适与Linux,因为你了解哪些部分是在Linux环境(也就是为什么)。一个Linux不会成为一个大黑盒子给你从头开始工作后通过Linux。
答:如果你想使用strace ... (9票)
entropo回复:
不要忘记消息ltrace:相当于库调用。
另外,是的,我推荐的Linux从头开始。这是一个很好的锻炼,在工作的操作系统的核心要素,以及如何将它们组合在一起。
对于一个现代化的,完整的系统编程参考治疗,我建议你拿起Linux的编程接口。
答:利用你的经验(7票)
约翰·布莱的答复:
为什么不开发上与MonoDevelop的单?这将让你很容易地重新使用您的经验。NET中开始。
答:捷径(3票)
SK逻辑答复:
不要强迫自己做你不喜欢的东西。为您的开发环境中使用的Windows,编写可移植代码,交叉编译Linux的,只偶尔在一个虚拟机测试。
答:STEB步骤(5票)
稔的答复:
这是艰巨的,当你看它从一开始(就像如果你是一个Linux开发人员正在做一些Windows开发任务)。一次,我会解决这一问题。
1)首先,让您的环境设置(编译器,IDE的是它们的存在,Netbeans的/的Eclipse等)
2)下一步,安装更高级别的API(增强/ Qt的等)
3)启动缓慢。如果有一个迫切要解决的问题,得到的代码编制(或从头开始写)。像你解决任何开发项目,得到的东西,你知道第一次工作(即不需要特定于操作系统的交互)的事情,然后当你碰钉子搜索。我敢肯定有人在那里遇到了同样的问题之前解决它。
最重要的是,在门口留下您的所有先入为主的观念。并没有,你不需要在Linux发展的一个大师,我知道避开,但不是万能的,我很舒服......
答:到Linux颂(6票)
安迪·坎菲尔德回复:
Mac OS X是像奔驰,它的漂亮和干净,但它花费了很多。Windows是像丰田,它将让你有和背部。
Linux是像热棒,这是人们深入探讨,并采取分开,放回去再一起。Linux是没有,只是想用电脑的人;它的人谁爱电脑。谁不喜欢电脑的人应该远离它。
在Windows中了解到的东西你不会翻译得非常好,没有。但你能看到的内部,并观看了发动机运行。
尝试采取的Linux作为一个新的玩具,你可以玩,爬进看到这是怎么回事。在Windows容易的事情是很难在Linux在Windows中是不可能的事情是有可能在Linux。
如果你喜欢电脑,你可以喜欢Linux,如果你不爱电脑,你为什么在所有的编程?
想你知道从Windows到Linux的最好的方式去吗?不同意上述表示的意见?原职在堆栈交易所,网络80 +的网站在那里你可以自由买卖像主题专家知识网络应用程序,骑自行车,科学的怀疑,并(几乎)之间的一切带给你的智慧。