当前位置:  技术问答>linux和unix

请问在Windows上能直接开发出在linux上运行的程序吗?

    来源: 互联网  发布时间:2015-11-28

    本文导语:  在linux上做C++的开发没有Win32上方便…… 不知道能不能在Windows平台下,直接就编译出能在linux上运行的target file 如果可以的话,我就只要在Win32上编译好程序,放到linux上执行就OK了 有没有知道的兄弟,告诉一声啊 thanks ...

在linux上做C++的开发没有Win32上方便……
不知道能不能在Windows平台下,直接就编译出能在linux上运行的target file
如果可以的话,我就只要在Win32上编译好程序,放到linux上执行就OK了
有没有知道的兄弟,告诉一声啊
thanks

|
不能。

|
目前还有这样的工具

|
绝对没有可能,装虚拟环境,说不定能写出那个平台下都能编译的代码。
但是,说到底,不离开 Windows 是学不了 Linux 的。

|
用交叉编译工具不就可以了吗????
用cygwin环境,然后在下面使用GCC就行了

|
用交叉编译工具不就可以了吗????
===
是可以,不过要自己编译GCC,libc、stl等库,而且受限于其它库,能开发的应用很有限,一般就用于开发嵌入式应用。象楼主这样的需求,还是回答“不能”更合适:)

能不能讨论一下为什么不可以啊?
====
一般操作系统不同,ABI就不同,即使都是x86平台,可执行代码仍然是无法通用的。

|
你用smb嘛,在一台LINUX上放置源码,在另一台WINDOWS下通过smb直接访问修改LINUX下的代码(可以用soureinsight之类的软件来改代码),然后通过ssh来远程编译代码,然后在那台LINUX下再用cvs客户端来同步服务器上的代码,有什么不方便的????????

配置需求:一台LINUX服务器,一台LINUX公用机,N台WINDOWS客户端,可以在那台LINUX公用机上设几个用户,每个用户将服务器上的代码下载到自己的目录中,然后通过远程WINODWS机来访问!!!
如果你还想节省一台机子的话,就将LINUX服务器与公用机用一台来做,不过这样子公用机的负荷相当重,而且数据安全性不能保证!!!

由于WINDOWS下的可执行文件格式与LINUX下的可执行文件格式不一样,操作系统的API也不一样,运行环境也不一样,所以就不能直接在WINDOWS下编译成LINUX下的可执行文件。

在使用Cygwin时,就相当于在模拟一个LINUX下运行环境,以至于可以让GCC,MAKE等工具能运行起来,而不再需要交叉编译(假定都是基于X86),当然,Cygwin仅适用于大多数的情况,有些能在LINUX下运行的程序放在Cygwin下就有可能无法运行的,且都是基于命令行的工具,如果是GUI的,就无法在Cygwin下运行,所以一般情况下,还不如直接在LINUX下开发更好,何必要一个cygwin呢????至于那些C库,C++库等,这些在网上都是现成的,随便下载就行了,无需自己去编译!!!!!只不过某些比较稀少的库需要自己去整

|
楼主有一句是这样说的:
我就只要在Win32上编译好程序,放到linux上执行就OK了
我的理解是在WINDOWS下写程序,编译,然后就把它放在LINUX下运行,所以我说要无法直接在WINODWS上编译的原因有三:
1.可执行文件格式不一样
2.系统的API不一样,只是标准C库对操作系统API作了封装,所以写标准C代码可以跨平台移植,前提就是在不同的平台下使用了不同的C库!!!
3.运行环境不一样,就这导致了有些编译工具无法直接运行,比如automake,gcc等,从而也就无法完成编译工作。

而cygwin模拟了LINUX运行环境,从而使一些基本工具能在WINDOWS下运行,从而实现编译工作,但它只是让常用的LINUX下的命令行工具可以使用,却无法使用一些诸如在GUI上可运行的软件,这就是它的局限性所在。

如果要想真正学会LINUX下的开发,最好在直接在LINUX下学习工作,LINUX下的工作效率未必就低,可以用soure navigator进行源码分析与编辑,还可以直接调用MAKE,跟soure insight一样好用,用DDD,gdb来调试,跟WINDOWS平台下的调试工具一样好用,用strace来跟踪程序,查看程序的系统调用,用sed,awk等来对文本操作,用各种脚本语言,应有尽有!!!!GCC对STL的支持也比较好,用SDL库编写游戏,图形界面,用GTK库,QT库,MYSQL。。。。。。

|
如果想在windows编译完成的二进制代码在linux运行,这不太可能
如果想写出可移植性的代码,在windows下写,然后编译,连接就可以在windows下运行
如果代码是符合C++标准,不用到其独有的平台的特性,在该平台上编译,连接运行照样可以运行
无论是linux还是苹果者是一样的

|
其实楼主完全可以使用这样的办法:
直接改造Eclipse,在Eclipse上实现一个你们的集成开发环境,后台还是采用cygwin+gcc的方式,这样用户在Eclipse界面上编写程序,只需点一下鼠标就可以在后台用makefile进行编译,然后再给GDB加一个图形界面,这样就可以在Eclipse上进行图形化的调试了!!!!
你需要去理解一下如何在Eclipse建立自己的集成开发环境这方面的内容

|
通常嵌入式系统都是这样开发的,不过实际成熟的这样的为纯linux的交叉编译环境没有,为uClinux倒是挺多。可见大家都认为没有这样的必要。因为linux下成熟的IDE非常多,你只是不去尝试而已。比如eclipse,和anjuta。

    
 
 

您可能感兴趣的文章:

  • 请问怎么改配置文件啊?能运行startx启动XWindow,运行X就不行呢?
  • 请问:进程创建的线程是怎样运行的啊,线程的处理函数运行完了,线程就退出了吗?
  • 请问如何将一个正在前台运行的程序放到后台继续运行,如何将其在需要的时候调到前台
  • 请问在java多线程中,是只有run(){}内的代码运行在一个新线程下呢?还是这个类中的代码都运行在一个新线程下?
  • 请问java编制的程序主要运行在服务器端还是客户端?听说它的速度比较慢,怎么可以运行在服务器端呢?谢谢!
  • 请问如何让Linux 0.11运行?它运行后是怎样的?谢谢!!
  • 请问线程的运行顺序是怎样的
  • 请问如何远程连AIX系统运行窗体程序?
  • 请问如何在linux下运行windows游戏?
  • 请问linux下查看某个程序的运行界面的程序是什么?
  • 我装有TOMCAT4.0。4 运行它后,试请问:怎样运行我的JSP 页面??
  • 请问在Jbuilder中运行Application用的是哪个程序
  • 请问如何运行java程序。就是xxxx.class。
  • 请问要如何运行.bin文件?
  • 请问java用什么工具编写?在哪里运行?我刚开始学,不太懂,谢谢了
  • 请问如何在Linux上运行Windows上的程序?
  • 我用JBUILDER7。只有两三天,问:一个项目有一个welcomeapp.java ,还有一个是welcomappframe.java,请问那一是主表单,(即运行时,运行的
  • 请问如何在red hat8.0中运行.bin扩展名的应用程序
  • 请问如何在IE中运行含有Jbuilder的JBCL控件的Applet?
  • 请问那里有运行jsp的开发工具下在
  • 请问windows 2000怎么访问linux?我要从linux下拷文件到windows下
  • 请问:我在windows的命令行下进入了linux的ftp服务器,我下载的文件在windows的哪个位置呀
  • 安装F8后,WINDOWS 系统没有声音,请问怎么把windows的声音找回来?
  • 请问如何在WINDOWS中访问linux下的文件,并把Windows下的文件复制到linux下的分区中
  • 请问如何让windows和redhat9共享一个分区?
  • 请问X windows, gnome, kde这三者有什么区别和连接
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问linux和windows 98怎么联网?
  • 大家好!请问怎么在linux下访问windows的分区
  • 请问如何让linux与windows共享网络连接?
  • 请问 solaris 有没有类似windows的远程桌面(terminal)?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • php开源软件 iis7站长之家
  • 请问如何设置驱动程序和应用程序的启动顺序和优先级呢?
  • 请问载linux下如何调试汇编程序,有没有像debug的程序。
  • 请问如何在一个java程序中加载 C或c++程序??
  • 请问大家,gnome下的程序与KDE下的程序有何区别?
  • 请问shell 开发能开发什么样的程序?硬件的驱动程序是否能够开发呢?
  • 请问怎么在C程序中得到该可执行程序的文件名???
  • 请问能否在linux实现一个应用程序访问另外一个程序的内存数据?
  • 请问:哪种工具可以制作安装程序,安装程序是基于java的或是能在aix运行?
  • 请问如何在java程序中关闭其他程序?急!急!!急!!!
  • 请问 如何用user用户启动一个程序(或者脚本) 在这个程序(或脚本)里将用户转为root 然后用root执行下面的代码
  • 请问gdb怎么处理带有启动参数的程序和多进程程序?
  • 请问linux下一个很简单的问题:我们的控制台下直接输入某个程序名就可以执行该程序,原理是什么?
  • 请问jsp做完程序后,怎样打包,怎样做安装程序?(分不够在加!)
  • 做了一个程序,想在其他机子上运行,但是说GTK版本太低,请问怎么发布程序?
  • 请问:有没有办法欺骗一个程序得到假的本机ip地址而不影响其它程序。
  • 我想用jsp做个发送邮件的程序,请问需要什么服务器?怎样配置?最好还能提供一个简单的测试程序!谢谢!
  • 请问:你们的程序都怎样关闭数据库?是在每次出现异常的时候吗?还是在一段程序结束后?
  • 请问用jb7编写的程序是否可以超平台,即在win下写的程序是否可以在linux下运行?
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问那里有SYBASE的jbdb 2.0下载;jspsmartupload可以直接将文件上传到数据库,请问如何使用
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3