当前位置: 代码迷 >> C语言 >> [讨论]C程序移植到UNIX系统应注意的问题??
  详细解决方案

[讨论]C程序移植到UNIX系统应注意的问题??

热度:140   发布时间:2007-08-02 11:00:56.0
[讨论]C程序移植到UNIX系统应注意的问题??
大家好,我是个菜鸟,最近工作中遇见一个问题,请各位大侠不吝赐教!!感激涕零!
问题是这样的:微机上的程序如果直接移植到SUN工作站上的UNIX系统是不能运行的,比如说,微机上最普通的注释符//和/* */在工作站上是不可用的,还有要是程序中遇到“math.h”,定义的函数,在UNIX系统中编译的时候必须加一个库函数-lm,否则是要出错的。当然还会有其他的不兼容问题,我希望在这方面有经验的大侠能帮我们总结总结,给我们这些初学者指指路,教我们两招,不胜感激!
我在此抛砖引玉,请大家赐教,谢谢!
搜索更多相关的解决方案: UNIX  系统  移植  

----------------解决方案--------------------------------------------------------
??为什么//和/**/不能用,我在linux的每个版本上都用过,可以啊,
UNIX也应该是可以的
头文件是有不用,windows的图形头文件和linux/UNIX就不一样
但他们都是标准C,有80%一样

在写可要移植系统的程序时,在不同系统有不同的地方时,用宏定义的方式分开写就行,编译的时候就会根据宏定义来编译不同的部分
----------------解决方案--------------------------------------------------------
其实不止移植系统是,会出现问题,在不同机器,64位,32位等,也会有这样的问题
----------------解决方案--------------------------------------------------------
这才是宏定义的真正用处.
----------------解决方案--------------------------------------------------------

嘿嘿,谢谢


----------------解决方案--------------------------------------------------------
据说下一个c标准要加入//注释定界符。

linux中用的是GCC,gcc对ANSIC99进行了扩展,把C++中的//注释定界符,inline加到了c里头,所以每个linux中//都可以用,在UNIX中不用GCC的情况下就不行了。

移植问题不是几句话就能说清楚的。简单的说,如果你的C程序和ANSI/ISO C是100%兼容,那么你的程序在任何系统都可以获得源代码级的移植性,包括linux,unix,windows甚至是单片机。不过只用ANSI/ISO C规定的那几个库函数干不了什么有用的事,确定只在Unix/Linux平台运行的话,调用符合POSIX标准的系统接口是没有问题的。这说的都是源代码可以移植,想编译后的程序可以移植就只有一个选择,用JAVA. only you,JAVA!
----------------解决方案--------------------------------------------------------
  相关解决方案