怎样使自己的c程序既能在win又能linux系统上运行?

 我来答
jianxiang54321
2010-06-16 · TA获得超过191个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:218万
展开全部
你如果是想自己写一个C程序,编译成可执行文件后,既可以在Win上跑又可以在Linux上跑,就目前我的了解是不可能的。
但是同一个C程序,只要在不同的编译器上编译过后就可以在不同的系统上跑,那是完全可行的。

举个例子:VC++编译一个C程序可以在Win上跑,相同的程序用gcc编译了,就可以在Linux上跑。
如果涉及到操作系统相关的系统函数可以用宏定义隔开。
举个例子:

ifdef _WinNT_
你的Windows系统代码
ifdef _Linux_
你的Linux系统代码

使用不同编译器编译时,在相关编译器里设置相应的宏即可。比如gcc用 -D_Linux_参数。详细的情况可以去了解预处理关于ifdef相关章节。
3DM经常掉线
2010-06-16 · TA获得超过189个赞
知道小有建树答主
回答量:154
采纳率:100%
帮助的人:116万
展开全部
C语言本身就是跨平台的,不能垮平台的是C语言的类库。

举个例子,如果您用MFC(别告诉我您不知道MFC)类库写C语言的程序的话,他就只能在win下运行。要挟可以跨平台的程序,就要用跨平台的类库,比如gtk和Qt之类的。(其他的跨平台的类库我不大熟悉,不做评论。)

另外,需要注意一些细节。比如,在Linux下分割路径用的是“/”,Win下用的是“\”。还有不要使用DircetX和ActiveX,这些接口都不是跨平台的。
还有,当程序中出现中文时,可能出现乱码。这个问题我是用条件编译解决的。(我想应该还有更好的方法,不过我不知到。)

遵循上述规则,您的程序就可以在Linux、Win和苹果上运行了,甚至可以在非X86架构下运行。(比如龙芯和ARM)

需要说明的是,可以跨平台运行并不是说,编译的可执行文件可以在任何平台上运行,而是程序可以在各个平台上编译。不过这并不费事儿。
如果您非要一次编译,跨平台运行的话,您只能考虑使用java或者python语言了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
breeze_growing
2010-06-16 · TA获得超过1176个赞
知道小有建树答主
回答量:397
采纳率:0%
帮助的人:342万
展开全部
主要是要用统一品牌的编译器。
比如,要用gcc,win用gcc,lin也用gcc。不可以win用turbo c,lin用gcc这样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cuzz22
2010-06-16 · 超过15用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:34万
展开全部
刚学C语言啊!难道不知道C语言遵循ANSI标准吗?当然不同的编译器肯定会有一些差别的。水平够得话会很快发现的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式