| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 253 人关注过本帖
标题:[讨论]C程序移植到UNIX系统应注意的问题??
收藏  订阅  推荐  打印 
lglupc
Rank: 1
等级:新手上路
帖子:2
积分:120
注册:2007-7-21
[讨论]C程序移植到UNIX系统应注意的问题??

大家好,我是个菜鸟,最近工作中遇见一个问题,请各位大侠不吝赐教!!感激涕零!
问题是这样的:微机上的程序如果直接移植到SUN工作站上的UNIX系统是不能运行的,比如说,微机上最普通的注释符//和/* */在工作站上是不可用的,还有要是程序中遇到“math.h”,定义的函数,在UNIX系统中编译的时候必须加一个库函数-lm,否则是要出错的。当然还会有其他的不兼容问题,我希望在这方面有经验的大侠能帮我们总结总结,给我们这些初学者指指路,教我们两招,不胜感激!
我在此抛砖引玉,请大家赐教,谢谢!
搜索更多相关主题的帖子: UNIX  系统  移植  
2007-8-2 11:00
酒肉弥勒佛
Rank: 3Rank: 3
等级:中级会员
威望:8
帖子:399
积分:4092
注册:2006-6-6

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

在写可要移植系统的程序时,在不同系统有不同的地方时,用宏定义的方式分开写就行,编译的时候就会根据宏定义来编译不同的部分

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-8-2 17:41
酒肉弥勒佛
Rank: 3Rank: 3
等级:中级会员
威望:8
帖子:399
积分:4092
注册:2006-6-6

其实不止移植系统是,会出现问题,在不同机器,64位,32位等,也会有这样的问题

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-8-2 17:57
huangfengchu
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:274
积分:2840
注册:2007-5-22

这才是宏定义的真正用处.

深山苦学C语言,终年不见外面世界。
2007-8-2 18:24
lglupc
Rank: 1
等级:新手上路
帖子:2
积分:120
注册:2007-7-21

嘿嘿,谢谢

2007-8-9 19:20
百年不亮
Rank: 4
等级:高级会员
威望:8
帖子:781
积分:8160
注册:2006-4-14

据说下一个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!

闭门读书中,有事发邮件到liunanst@gmail.com
2007-8-9 19:41
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.200177 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved