windows编程向linux的痛苦转身

         虽然都是C++,并且本人对windows API用的也比较少,常用的也就GetTickCount, atoi,sleep 几个函数,本以为自己可以轻松转身到linux环境下的开发。目前看来我错了,忽略了编译器以及编译调试的变化。

       用惯了windows,也用惯了Visual Stdio,以前在windows环境下开发,VS提供的强大的辅助和调试功能使我编程的效率非常之高。可是,现在面对一个在linux运行的服务器,虽然还可以使用Visual Stdio做编译,但是仅仅是编写代码,无法编译,不能运行和调试,编写到的代码,需要在上传到linux服务器,然后配置makefile进行编译和链接。更要命的,只能用基于命令行的gdb来进行调试,我感觉我似乎回到了用记事本来编写代码的年代,对我这个工具优先的人来说,是一个巨大的打击。

       痛定思痛,现在我需要好好学习和使用linux的编译和调试,越是不熟悉,越要多使用,初期犯的错误越多,以后的路走的就越顺。

      不过,我现在还有一个计划,编写windows和linux下通用的代码,即可以在linux和windows下都可以编译通过的代码,通过以下的一些方式,应该可以达到目标。

 

     通过操作系统环境标示宏__linux__和 WIN32宏,来实现条件编译,目标是在linuxwindows下均可编译通过。

     天龙八部的代码即是如此,运行在linux系统下,但是在Visual Stdio中也可以编译通过,不一定在Windows下运行,但这会带来调试和排错的好处(比只编译一个文件会好一 些)。

    #ifdef WIN32   window环境标示宏

    // 或者#if #if _MSC_VER >= 1300 // 使用VS编译器版本号来判断
    #if def (__linux__)  Linux环境标示宏
     DEBUG,调试模式。 --仅对windows环境有效。

 

 

 

 

你可能感兴趣的:(windows编程向linux的痛苦转身)