依睛(IT blog) 我回来了,PHP<-->C/C++ LINUX

笨鸟

统计

积分与排名

友情连接

最新评论

程序移植(windows/linux)

终于学LINUX下的东西了, 工作也没工作这行, 不过一直思考了好长时间,

移植问题是一大块难点.  终于会了, 移植的定义.

这是小例子, 只是试一下. 什么都是从一点点开始.

//hello.c文件
#include <stdio.h>
#include <string.h>


int main()
{

      #ifdef WIN32 //WINDOWS 上以定义
          printf("WIN32 hello world  1\n");
     #elif defined(OS_POSIX) 
          printf("linux hello world 2\n");
      #endif

       return 0;
}



这程序在WINDOWS下直接运行,

LINUX命命行:

$ gcc -DOS_POSIX -o hello hello.c
$ ./hello
linux hello world 2
$


gcc -D 编译时定义宏/宏定义(用户程序中的宏)

-D name, Predefine name as a macro, with definition 1.(给所编译文件定义一个宏其值为1)

# vi test.c
---------------------------------
#include <stdio.h>

#define ADD(x, y)        (x) + (y) + 10
#undef ADD
#define ADD(x, y)        (x) + (y)

#undef PDEBUG            /* undef it, just in case */
#ifdef
DEBUG
#define PDEBUG(fmt, args...)    printf("cmmb_inno: line %d - %s():"fmt, __LINE__, __FUNCTION__, ##args)
#else
#definePDEBUG(fmt, args...)
#endif

int main()
{
    PDEBUG("%s and %s\n", "zengxl", "luol");
    printf("10 + 8 = %d\n", ADD(10, 8));
}


--------------------------------
# gcc test.c -D DEBUG
# ./a.out
cmmb_inno: line 16 - main():zengxl and luol
10 + 8 = 18
# gcc test.c
# ./a.out
10 + 8 = 18


posted on 2008-11-01 20:53 向左向右走 阅读(300) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。