当前位置:  技术问答>linux和unix

windows转unix编程新手问题

    来源: 互联网  发布时间:2016-01-04

    本文导语:  我学习了一些unix书,我也理解windows和unix的差异,但是编程时还是感觉有些不方便,能否请老手指点一下: 1 看稍有规模的代码不是很方便,体现在查找一个类或函数的定义时 2 unix的编程在线帮助系统是怎么使用...

我学习了一些unix书,我也理解windows和unix的差异,但是编程时还是感觉有些不方便,能否请老手指点一下:

1 看稍有规模的代码不是很方便,体现在查找一个类或函数的定义时
2 unix的编程在线帮助系统是怎么使用的?在windows下开发基本只需用MSDN,许多东西都很好查
3 调试。请问哪有unix下调试一个程序的步骤介绍?单步、断点、查看变量、内存、寄存器、call stack,条件断点,编辑继续等等功能都怎么做?
4 遇到需多任务切换时,通常都怎么做?例如在修改代码同时运行程序?
5 写代码的时候,代码自动补全功能如何做?有没有自动提示或列出成员变量、或列出某前缀的全局函数?


以上问题尽管我不希望听到"使用X"的答案,但是我还是希望看到老手们真实的做法,好给我一个参考。

|
1 看稍有规模的代码不是很方便,体现在查找一个类或函数的定义时
A:用更强有力的工具比MS家族:
   emacs+ctags/etags+speedbar
   emacs+senator+semantic
   vi+ctags
  多数情况组合使用emacs+*或vi+*

2 unix的编程在线帮助系统是怎么使用的?在windows下开发基本只需用MSDN,许多东西都很好查
A:unix更好查比MS家族:
  man+grep/less 多用于库函数
  info 多用于系统帮助

3 调试。请问哪有unix下调试一个程序的步骤介绍?单步、断点、查看变量、内存、寄存器、call stack,条件断点,编辑继续等等功能都怎么做?
A:unix调试器要远远强大于MS家族(那根本不能叫做真真的调试器):
   gdb你所指的功能全都有,任何一个方面都强于MSVC,,比如手工调用一个函数而不执行你的程序。条件断点可以设置,位置中断,访问中断,事件中断,计数中断,条件表达式中断,中断后处理等。可以保存程序内部状态等。
   gdb的手册有几百页厚。
   具体都是通过gdb提示符下的命令执行,也有一些gdb的前端可用,比较著名的是ddd(在X中,如果你想要一个可以只用鼠标的调试器)。
   使用emacs+gdb,你会获得源码和调试同步显示的能力。

4 遇到需多任务切换时,通常都怎么做?例如在修改代码同时运行程序?
  gdb) thread id
  gdb)set write on
  编译然后继续你的调试

5 写代码的时候,代码自动补全功能如何做?有没有自动提示或列出成员变量、或列出某前缀的全局函数?
  emacs+senator 或
  emacs+semantic 或
  emacs+semantic+index
  调试时TAB

大师们常说没有人能真正了解unix,如果上面的这些东西你不知道,你可能还有很多书要看,很多实践要做。gcc,glibc,emacs是从来没用过windows的人写出来的,他根本不会用windows,编写像TCP/IP协议等互联网基础架构的人大部分人没用过windows的。相对于他们,相对于stallman我们还有很多路要走。

|
呵呵,我都写了2年linux程序了,连makefile,g++ ,gcc,gdb,命令还不会用.

为什么阿,因为我在用linux上的VC阿.

Magicc++.


居然没有人说Magicc++.

这是一个在c/s结构的东西.

客户端在Win上,用户界面跟VC一样,Server端在Linux上,负责执行编译和调试功能.

当你在Win的客户端上按F5进行单步调试的时候,过程是跟VC一摸一样的,程序还是在linux上执行的,所以你既可以得到win的方便,也可以在真实的环境上运行.

比所谓的cgwin的模拟强多了.




举例吧,我想在linux上编译ACE,有几百个文件,几百个类吧.

我只要建立一个工程,选择向工程添加文件菜单,选中ACE_WRAPPER目录,选中递归子目录选项,过个一阵子,几百个类就跟VC一样出现在窗口上了.

这个时候我再按一下F5,就开始编译了,过个几十分钟,就编译完了.

如果你不用MAGICC++,可能要自己写Makefile文件吧.当然ACE会提供MAKEFILE,但是所谓的开源,提供的MAKRFEIL好不好用还不一定.


这时候,有人该说我水平差了,说我被MS弄傻了.呵呵.

我认为使用g++,gdb,printf的人才傻呢.


我碰见使用Linux的人,就会推荐MAGICC++的,因为是它让我帮助我从win上1天之内就转到了linux平台上.
linux开发和win应用开发没有什么区别,系统API都差不多

区别就是linux太没有人性了.

|
同感,这些问题我也想知道。

    
 
 

您可能感兴趣的文章:

  • 请问linux/unix下编程与windows下编程有什么不同呢??
  • windows下编程中有没有linux编程中管道和信号的概念?
  • X Window编程
  • 问一个不好分类的题目 linux编程和windows编程的区别
  • 请问jsp,java在window和linux下编程有什么不同?
  • X-Window编程中如何隐藏掉窗口?
  • linux 与 windows下的编程 在中国的环境下 哪个有前途(,给个向导!我迷茫了
  • 怎样可以在WINDOWS下连到UNIX下的SYBASE数据库进行编程?
  • X-Window编程有哪些好用的库?
  • linux下编程读取windows数据
  • windows 与 linux socket 编程问题
  • 如何用x windows编程实现画矩形?~(请给出程序源码!重谢!~~急!!!!!!!!!!!!)
  • 请教:Linux下的C++编程和Windows下有什么不同,要注意什么?
  • 请教几个X Windows编程的问题。
  • 关于windows xp下的jdk编程的问题!(高分求助!!)
  • 稍懂linux和windows网络编程的请进
  • 在windows下用Gtk编程,如何配置
  • VMWare下Red Hat 9 windows2000 Socket编程
  • window下如何编程读写ext3文件系统
  • SOS!!!有X Window编程经验的大虾指教!!!经验证有效的100分奉送!!!在线等
  • 新手求教——windows程序移植到unix下
  • 新手:linux下怎么不知道硬盘和光驱在那儿,不象windows的资源管理器???
  • 新手上路,请多关照! 如何在LINUX下查看WINDOWS系统的文件???
  • gcc新手新问题,在windows下有可以编译??
  • 新手请教:请问如何将以前Windows平台下的c++工程改造到linux系统平台下
  • 新手问:我在windows系统中下载了tomcat,请问如何拷到linux系统下安装呀
  • 新手,问linux有windows的 WaitforSingleObject的概念吗
  • Debian 新手求救! apt-get install x-window-system-xore 有依赖!!
  • 问一个新手问题:在linux下的c语言编程跟windows下有什么不同?
  • 请问如何调用windows自带的程序(比如说计算器),我是新手请详细指点,愿(200)分相送。
  • 新手问题!我装的是turbo linux4.0如何在x windows 里改变分辨率啊?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt类window.accessibleawtwindow的类成员方法: window.accessibleawtwindow定义及介绍
  • 怎么在Linux下改windows系统文件啊,我把windows的BOOT.INI改了,windows启动不了
  • java命名空间java.awt类window的类成员方法: window定义及介绍
  • x-windows如何安装在linux(rdehat9)上面呢,是不是x-windows也分windows和linux版本的吗?
  • java命名空间java.awt.event类windowevent的类成员方法: window_activated定义及介绍
  • linux和windows串口问题!?linux向windows端发送,第一次write正常,继续write,windows接收到的就变成乱码了,这是什么原因??????
  • java命名空间java.awt.event类windowevent的类成员方法: window_deactivated定义及介绍
  • redhat7.3+window me +windows xp 共存,MBR在windows me 分区,现在要重裝windwos me,怎么办?
  • java命名空间java.awt.event类windowevent的类成员方法: window_gained_focus定义及介绍
  • 装了Linux和Windows,怎样默认进入Windows
  • java命名空间java.awt.event类windowevent的类成员方法: window_lost_focus定义及介绍
  • Linux与windows共存时,如何将Windows设置为默认启动系统?
  • java命名空间java.awt类window的类成员方法: setvisible定义及介绍
  • 怎样是编好的java application在windows上像windows应用程序一样直接运行
  • java命名空间java.awt类systemcolor的类成员方法: window定义及介绍
  • windows 和linux双系统,重装windows后,无法启动linux?
  • java命名空间javax.accessibility类accessiblerole的类成员方法: window定义及介绍
  • 如何将linux的一台机器加入windows 2000的域?并且通过一windows的机器上网?
  • java命名空间java.awt.event类keyevent的类成员方法: vk_windows定义及介绍
  • 为什么在安装了WINDOWS和LINUX的电脑上,重装WINDOWS会破坏MBR?
  • WinDows8最新版文件夹加密
  • Linux + Windows2000 双启动,Windows2000起不来了,说是文件被破坏,进来看看……


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3