C或者C++ 是如何判断操作系统的类型的(比如windows和linux)

ponanren 2011-04-06 11:02:08
C或者C++ 是如何判断操作系统的类型的(比如windows和linux) 要做个跨平台软件
...全文
1557 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
guoqiang5277 2011-04-07
  • 打赏
  • 举报
回复
这个恐怕不是太好判断的,因为获取系统版本信息的函数的方式类型,是不一样的
Tauren_Chieftan 2011-04-07
  • 打赏
  • 举报
回复

要在windows xp下编译多个平台下的软件有(windows xp,linux,unix等等)

1:就是在Makefile及相关的工程配置(默认的平台宏是否define,编译rule,头文件、库目录等等)。
2:代码中通过平台宏来控制各个平台。





六六哥 2011-04-06
  • 打赏
  • 举报
回复
使用宏来区分不同平台的代码,宏可以自己定义,但是要写在硬件里面,如板卡里面,否则就要用_win32之类的宏定义
pathuang68 2011-04-06
  • 打赏
  • 举报
回复
C/C++本身无法判断是Linux还是Windows平台。

要做跨平台的C/C++应用,尽量使用标准的C/C++。

用#ifdef #define 之类的分别引入特定操作系统平台相关的头文件,编译前再#define一下。
jialejiahi 2011-04-06
  • 打赏
  • 举报
回复
如果你用到了系统的api,那么这个软件必定不是跨平台的。
要想跨平台只能用标准C的库函数。
还有一些第三方开发库,比如Qt,java,它们在不同的平台都可以执行
luciferisnotsatan 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 maoxing63570 的回复:]

囧,又说错了,这个只有在windows下才可以
[/Quote]
linux可以用 system("uname -a")

要写两份,一份windows的,一份linux的。加编译开关,编windows时用windows那份,编linux用linux。
luxingqiang110 2011-04-06
  • 打赏
  • 举报
回复
#ifdef __linux
#define
#endif
油条大侠 2011-04-06
  • 打赏
  • 举报
回复
简单来说就是多次编译
就想叫yoko 2011-04-06
  • 打赏
  • 举报
回复
_WIN32
油条大侠 2011-04-06
  • 打赏
  • 举报
回复
简单来说C/C++的编译器就是为了能让开发出来的东西在特定的平台上跑,如Linux的GCC,windows的VC
maoxing63570 2011-04-06
  • 打赏
  • 举报
回复
囧,又说错了,这个只有在windows下才可以
maoxing63570 2011-04-06
  • 打赏
  • 举报
回复
很简单
system("systeminfo");
luciferisnotsatan 2011-04-06
  • 打赏
  • 举报
回复
编译时就能知道了。你到底编的是linux还是windows。
编出来的二进制文件是不能跨平台的。
xunxun 2011-04-06
  • 打赏
  • 举报
回复
一般就是
#ifdef win32
print "Windows OS"
#elif
print "Linux OS"
类似的伪代码

这个是编译器的默认预处理宏决定的(windows下编译器默认宏有WIN32、_WIN32之类的)
zjw6861982 2011-04-06
  • 打赏
  • 举报
回复
通过预编译宏,c/c++本身在个平台上均有实现,不同的是编译器,以及你的程序编译出来的二进制文件
ForestDB 2011-04-06
  • 打赏
  • 举报
回复
“你”告诉“它”的,通过类似宏。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧