什么叫做跨平台的ide,这个跨平台是针对谁的

emily_lee0108 2014-01-05 10:23:58
什么叫做跨平台的ide,这个跨平台是针对ide本身可以在各种系统之下安装运行呢,还是说它开发的程序能够在其他系统上不做任何修改重新编译(用同版本的ide)后就能够运行呢?如果是后者,它是怎么做到的。
...全文
225 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
emily_lee0108 2014-01-05
  • 打赏
  • 举报
回复
谢谢大家~~~
emily_lee0108 2014-01-05
  • 打赏
  • 举报
回复
引用 17 楼 ALNG 的回复:
是啊,需要重新编译。你的理解是对的。
好嘞~~谢谢
孩皮妞野 2014-01-05
  • 打赏
  • 举报
回复
是啊,需要重新编译。你的理解是对的。
emily_lee0108 2014-01-05
  • 打赏
  • 举报
回复
引用 14 楼 ALNG 的回复:
[quote=引用 10 楼 vipcxj 的回复:] [quote=引用 7 楼 emily_lee0108 的回复:] [quote=引用 4 楼 derekrose 的回复:] 这种说法你在哪看到的
是今天查codeblocks,发现它是跨平台的,以前我我理解它的跨平台就是说同一个版本在任何系统下都能够安装运行,但是今天想想不对啊,因为我觉得这样用处不是很大啊。但是就拿codeblocks来说吧,严格的来说c语言应该也是一种跨平台的的语言,因为只要它没有使用系统调用,那么只要某个系统上有它对应的编译器,就能够做到一次编写,多次编译便能在不同系统上运行,这点与java不一样,但是我就在想,如果codeblocks说的跨平台说的是用c语言编写的程序,在不同的操作系统下,只要有codeblocks,就能够编译成为能够适应该系统的机器码,那codeblocks在不同的系统下肯定是不同的版本,这样它才能够提供针对特定平台的编译器啊,那这样又为什么叫codeblocks是跨平台的ide呢,要是这样的话我何必需要codeblocks呢,在另外一个系统下我只需要找一个编译器就够了,压根就不需要codeblocks了~~~~[/quote] 你之前的想法本来就是对的,你后面的想法完全是钻牛角尖。某款软件跨平台不代表同一个程序能在不同平台运行,而是它至少要发布多个平台的版本,并且这多个平台下功能基本是一致的。C明显不是跨平台的语言,生成的可执行文件的二进制布局都不见得是每个平台都一样滴。最重要的是离开了系统函数,C语言肯定是一事无成的。就算你写个hellow world程序,输出字符到终端不还是要调用系统函数。[/quote] 前半部赞同。C/C++语言本身不跨平台的结论我也赞同,但hello world的例子并不好,调用不同的系统函数不是问题,对程序员来说,我相同的代码得到相同和大致相同的结果,那么这个程序就是跨平台的。所以hello world的标准C程序是非常跨平台的,C++的一些只用标准库的经典示例程序也是跨平台的。比如新的C++11的标准库增加了对多线程的支持,这样以后C++程序员写多线程程序,如果只是用标准库的功能,那么就这一部分而言,他的C++程序已经是跨平台的了。如果不能同意这一点,那么就不会存在跨平台的C/C++程序或程序库了。 [/quote] 你这里所说的跨平台,针对你说的标准c程序,到底是指只经过一次编译,就能在各个平台上运行呢,还是说在其他平台下还是需要重新编译才能运行,我个人的理解是需要经过重新编译,而根据你所说的“对程序员来说,我相同的代码得到相同和大致相同的结果,那么这个程序就是跨平台的”,我也认为你的看法是需要重新编译~~~不知道我理解的对不对,求指教!!!
孩皮妞野 2014-01-05
  • 打赏
  • 举报
回复
引用 13 楼 emily_lee0108 的回复:
[quote=引用 11 楼 ALNG 的回复:] codeblocks主要是个IDE, 它跨平台,就是说它为某几个平台提供了可运行程序。 而用户要使用这个IDE写出跨平台的程序,还要依赖一些跨平台的库,比如 codeblocks+wxWidget。IDE和wx的目标都是尽可能提供给用户(程序员)一致的跨平台体验。
我想问一下,这里跨平台的库,是不是指写出来的程序是一次编译,就能在不同平台下运行的,还是说在其他平台上要重新编译 [/quote] 要重新编译。不同平台的可执行文件格式不一样,甚至CPU指令,byte order(endian)都不一样。与Java和C#不一样,它们有个中间码,由虚拟机处理中间吗,虚拟机成了平台的一部分。可以认为他们更跨平台,当然,代价是稍差的执行效率。
孩皮妞野 2014-01-05
  • 打赏
  • 举报
回复
引用 10 楼 vipcxj 的回复:
[quote=引用 7 楼 emily_lee0108 的回复:] [quote=引用 4 楼 derekrose 的回复:] 这种说法你在哪看到的
是今天查codeblocks,发现它是跨平台的,以前我我理解它的跨平台就是说同一个版本在任何系统下都能够安装运行,但是今天想想不对啊,因为我觉得这样用处不是很大啊。但是就拿codeblocks来说吧,严格的来说c语言应该也是一种跨平台的的语言,因为只要它没有使用系统调用,那么只要某个系统上有它对应的编译器,就能够做到一次编写,多次编译便能在不同系统上运行,这点与java不一样,但是我就在想,如果codeblocks说的跨平台说的是用c语言编写的程序,在不同的操作系统下,只要有codeblocks,就能够编译成为能够适应该系统的机器码,那codeblocks在不同的系统下肯定是不同的版本,这样它才能够提供针对特定平台的编译器啊,那这样又为什么叫codeblocks是跨平台的ide呢,要是这样的话我何必需要codeblocks呢,在另外一个系统下我只需要找一个编译器就够了,压根就不需要codeblocks了~~~~[/quote] 你之前的想法本来就是对的,你后面的想法完全是钻牛角尖。某款软件跨平台不代表同一个程序能在不同平台运行,而是它至少要发布多个平台的版本,并且这多个平台下功能基本是一致的。C明显不是跨平台的语言,生成的可执行文件的二进制布局都不见得是每个平台都一样滴。最重要的是离开了系统函数,C语言肯定是一事无成的。就算你写个hellow world程序,输出字符到终端不还是要调用系统函数。[/quote] 前半部赞同。C/C++语言本身不跨平台的结论我也赞同,但hello world的例子并不好,调用不同的系统函数不是问题,对程序员来说,我相同的代码得到相同和大致相同的结果,那么这个程序就是跨平台的。所以hello world的标准C程序是非常跨平台的,C++的一些只用标准库的经典示例程序也是跨平台的。比如新的C++11的标准库增加了对多线程的支持,这样以后C++程序员写多线程程序,如果只是用标准库的功能,那么就这一部分而言,他的C++程序已经是跨平台的了。如果不能同意这一点,那么就不会存在跨平台的C/C++程序或程序库了。
emily_lee0108 2014-01-05
  • 打赏
  • 举报
回复
引用 11 楼 ALNG 的回复:
codeblocks主要是个IDE, 它跨平台,就是说它为某几个平台提供了可运行程序。 而用户要使用这个IDE写出跨平台的程序,还要依赖一些跨平台的库,比如 codeblocks+wxWidget。IDE和wx的目标都是尽可能提供给用户(程序员)一致的跨平台体验。
我想问一下,这里跨平台的库,是不是指写出来的程序是一次编译,就能在不同平台下运行的,还是说在其他平台上要重新编译
emily_lee0108 2014-01-05
  • 打赏
  • 举报
回复
引用 10 楼 vipcxj 的回复:
[quote=引用 7 楼 emily_lee0108 的回复:] [quote=引用 4 楼 derekrose 的回复:] 这种说法你在哪看到的
是今天查codeblocks,发现它是跨平台的,以前我我理解它的跨平台就是说同一个版本在任何系统下都能够安装运行,但是今天想想不对啊,因为我觉得这样用处不是很大啊。但是就拿codeblocks来说吧,严格的来说c语言应该也是一种跨平台的的语言,因为只要它没有使用系统调用,那么只要某个系统上有它对应的编译器,就能够做到一次编写,多次编译便能在不同系统上运行,这点与java不一样,但是我就在想,如果codeblocks说的跨平台说的是用c语言编写的程序,在不同的操作系统下,只要有codeblocks,就能够编译成为能够适应该系统的机器码,那codeblocks在不同的系统下肯定是不同的版本,这样它才能够提供针对特定平台的编译器啊,那这样又为什么叫codeblocks是跨平台的ide呢,要是这样的话我何必需要codeblocks呢,在另外一个系统下我只需要找一个编译器就够了,压根就不需要codeblocks了~~~~[/quote] 你之前的想法本来就是对的,你后面的想法完全是钻牛角尖。某款软件跨平台不代表同一个程序能在不同平台运行,而是它至少要发布多个平台的版本,并且这多个平台下功能基本是一致的。C明显不是跨平台的语言,生成的可执行文件的二进制布局都不见得是每个平台都一样滴。最重要的是离开了系统函数,C语言肯定是一事无成的。就算你写个hellow world程序,输出字符到终端不还是要调用系统函数。[/quote] 好嘛~~~谢谢指教~~~但是我个人觉得哈~~我写个hello world,我只有标准库里面的东西,即使是最终会调用到系统函数,那我只要用对应平台上的编译器重新编译就行了~~~还是可以运行的啊~~~
孩皮妞野 2014-01-05
  • 打赏
  • 举报
回复
codeblocks主要是个IDE, 它跨平台,就是说它为某几个平台提供了可运行程序。 而用户要使用这个IDE写出跨平台的程序,还要依赖一些跨平台的库,比如 codeblocks+wxWidget。IDE和wx的目标都是尽可能提供给用户(程序员)一致的跨平台体验。
vipcxj 2014-01-05
  • 打赏
  • 举报
回复
引用 7 楼 emily_lee0108 的回复:
[quote=引用 4 楼 derekrose 的回复:] 这种说法你在哪看到的
是今天查codeblocks,发现它是跨平台的,以前我我理解它的跨平台就是说同一个版本在任何系统下都能够安装运行,但是今天想想不对啊,因为我觉得这样用处不是很大啊。但是就拿codeblocks来说吧,严格的来说c语言应该也是一种跨平台的的语言,因为只要它没有使用系统调用,那么只要某个系统上有它对应的编译器,就能够做到一次编写,多次编译便能在不同系统上运行,这点与java不一样,但是我就在想,如果codeblocks说的跨平台说的是用c语言编写的程序,在不同的操作系统下,只要有codeblocks,就能够编译成为能够适应该系统的机器码,那codeblocks在不同的系统下肯定是不同的版本,这样它才能够提供针对特定平台的编译器啊,那这样又为什么叫codeblocks是跨平台的ide呢,要是这样的话我何必需要codeblocks呢,在另外一个系统下我只需要找一个编译器就够了,压根就不需要codeblocks了~~~~[/quote] 你之前的想法本来就是对的,你后面的想法完全是钻牛角尖。某款软件跨平台不代表同一个程序能在不同平台运行,而是它至少要发布多个平台的版本,并且这多个平台下功能基本是一致的。C明显不是跨平台的语言,生成的可执行文件的二进制布局都不见得是每个平台都一样滴。最重要的是离开了系统函数,C语言肯定是一事无成的。就算你写个hellow world程序,输出字符到终端不还是要调用系统函数。
emily_lee0108 2014-01-05
  • 打赏
  • 举报
回复
引用 8 楼 ALNG 的回复:
如果你只用C/C++的标准库,那你的c/c++程序可以说确实是夸平台的。问题是一旦超出标准库的范围,不同平台之间的差异就难以忽略了。比如GUI, windows的API在Linux就没有原生的对应版本,你可以想想光就GUI来说,一个WIndows上的c/C++程序要经过多少修改才能在linux/gnome or kde上编译。还有网络,com技术,线程等等。那些跨平台的系统基本就是加入了一到多个中间层,让用户代码可以不用考虑平台差异。
这些我都知道~~~但是我还是想理解跨平台的codeblocks到底是什么个意思~~~求指教
孩皮妞野 2014-01-05
  • 打赏
  • 举报
回复
如果你只用C/C++的标准库,那你的c/c++程序可以说确实是夸平台的。问题是一旦超出标准库的范围,不同平台之间的差异就难以忽略了。比如GUI, windows的API在Linux就没有原生的对应版本,你可以想想光就GUI来说,一个WIndows上的c/C++程序要经过多少修改才能在linux/gnome or kde上编译。还有网络,com技术,线程等等。那些跨平台的系统基本就是加入了一到多个中间层,让用户代码可以不用考虑平台差异。
emily_lee0108 2014-01-05
  • 打赏
  • 举报
回复
引用 4 楼 derekrose 的回复:
这种说法你在哪看到的
是今天查codeblocks,发现它是跨平台的,以前我我理解它的跨平台就是说同一个版本在任何系统下都能够安装运行,但是今天想想不对啊,因为我觉得这样用处不是很大啊。但是就拿codeblocks来说吧,严格的来说c语言应该也是一种跨平台的的语言,因为只要它没有使用系统调用,那么只要某个系统上有它对应的编译器,就能够做到一次编写,多次编译便能在不同系统上运行,这点与java不一样,但是我就在想,如果codeblocks说的跨平台说的是用c语言编写的程序,在不同的操作系统下,只要有codeblocks,就能够编译成为能够适应该系统的机器码,那codeblocks在不同的系统下肯定是不同的版本,这样它才能够提供针对特定平台的编译器啊,那这样又为什么叫codeblocks是跨平台的ide呢,要是这样的话我何必需要codeblocks呢,在另外一个系统下我只需要找一个编译器就够了,压根就不需要codeblocks了~~~~
孩皮妞野 2014-01-05
  • 打赏
  • 举报
回复
乱了,是 Ultimate++ 主要开发人员mirek也算个C++的超级牛人了, 那种实践型的。
孩皮妞野 2014-01-05
  • 打赏
  • 举报
回复
推荐C++跨平台的IDE, t 在Windows和Linux(如Ubuntu)上下载运行一下,尝试几个例子程序,就知道它可以做到什么,然后再慢慢研究它是怎么做到的。
derekrose 2014-01-05
  • 打赏
  • 举报
回复
这种说法你在哪看到的
ztenv 版主 2014-01-05
  • 打赏
  • 举报
回复
引用 楼主 emily_lee0108 的回复:
什么叫做跨平台的ide,这个跨平台是针对ide本身可以在各种系统之下安装运行呢,还是说它开发的程序能够在其他系统上不做任何修改重新编译(用同版本的ide)后就能够运行呢?如果是后者,它是怎么做到的。
本身可以在各种系统中运行的目前来口有使用虚拟机的才可以,如:java、C#也可以,但ms没有支持; 编译时根据编译的目标生成不同的目标二进制;
孩皮妞野 2014-01-05
  • 打赏
  • 举报
回复
主要是指用户程序可以不经修改或只经少量修改就可以在至少两个平台(操作系统)上运行。
emily_lee0108 2014-01-05
  • 打赏
  • 举报
回复
谢谢大神指教!!!

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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