日期:2014-05-16  浏览次数:20620 次

Linux下的C语言程序在Windows下编译
有一个任务,有一个用C写的源程序,后缀为.a,.o。查询了相关文档发现是linux下写的程序。但是我现在想要在Windows下编译通过,有些资料说换Linux系统或者装虚拟机上装Linunx系统。我在想有没有更简单的办法?
  而且加入我在Linux下将这个程序给编译了,我以后可以在windows下跟踪或运行吗?
  我是菜鸟,不懂这些。求高手。

------解决方案--------------------
二进制程序都不兼容,怎么能在windows下运行

直接移植源码吧
------解决方案--------------------
直接运行目前还不行。

有源码可以用 cygwin环境编译


------解决方案--------------------
.a或.o是Linux下的二进制文件,无法在windows上用的。

如果你有该文件的.c源程序,那是可以拿到windows上重新编译的!
------解决方案--------------------
直接移植源码
------解决方案--------------------
楼主可以装一个 linux 虚拟机或者 cygwin,这样,同一套代码既可以在 windows 下编译,调试,也可以在 linux下编译。
------解决方案--------------------
.a一般是linux的静态库;
.o是linux下的编译结果build target。
linux执行文件是elf格式,windows是PE格式,所以不能够在windows下运行。
你可以找到对应的.c/.C文件,如果代码使用标准c库写的,在windows下编译应该难度不大,因为标准c库函数winows下的编译器是支持的。
另外,如果代码中有 linux系统调用 和 linux下库(qt之类的),这个你就只能修改成windos下对应的系统调用了。
可以参考“Windows 和 Linux 应用程序从上到下调用层次比较”:
http://blog.csdn.net/hzgdiyer/article/details/6087943

------解决方案--------------------
移植代码吧,在linux运行的在windows肯定不行的。