设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
The magic of cross compiling -- 在Linux下编译出Windo ...
返回列表
查看:
1413
|
回复:
4
The magic of cross compiling -- 在Linux下编译出Windows exe文件
[复制链接]
henryouly
henryouly
当前离线
积分
380
IP卡
狗仔卡
发表于 2005-2-12 23:20:53
|
显示全部楼层
|
阅读模式
一直只在编译原理课程中听说过交叉编译的概念,并没有真的实践过。即使后来需要把linux的源程序移植到windows下面运行,也是借助cygwin的编译环境,在windows下安装好cygwin后再编译源程序。后来在网上看到交叉编译的相关资料,决定动手实践一下,并测试成功。
在Linux下编译出windows exe,基本原理是用交叉编译版本的compiler和linker来产生出windows平台的代码。mingw项目的成员在这方面有十分杰出的贡献。可以通过mingw提供的binutils和gcc来实现我们的目的。我们所要做的只是在自己的Linux box下把环境正确架设起来
如果对gcc和binutils的参数相当熟悉,可以试着按照
http://ricardo.ecn.wfu.edu/~cottrell/cross-gtk/
的说明,自己动手配置环境。不过我更倾向于用脚本简化操作。
www.libsdl.org
的网站上面提供了已经编写好的脚本,可以自动从网上把需要的文件下载并编译安装。脚本地址在
http://www.libsdl.org/extras/win32/cross/build-cross.sh
运行脚本以前,需要针对目前最新的版本情况,对脚本的各软件下载路径做个简单配置。对照
https://sourceforge.net/project/showfiles.php?group_id=2435
把脚本当中的软件版本设置好,就可以执行sh ./build-cross.sh开始下载(记住选一个快的镜像哦
脚本正常结束后,就可以进行交叉编译了。脚本的默认安装路径在/usr/local/cross-tools,编译器名字为i386-mingw32msvc-gcc。只需要用这个gcc代替默认的gcc就可以编译出windows exe文件了。
如果是编译按GPL发布的软件包,会需要用configure和Makefile来build代码,而它们并不能自动使用cross compile版本的gcc和ld。解决办法libsdl上面也有提供。从
http://www.libsdl.org/extras/win32/cross/
下载cross-make.sh和cross-configure.sh,用这两个脚本代替make和configure步骤即可。
参考文档:
http://www.libsdl.org/extras/win32/cross/README.txt
http://ricardo.ecn.wfu.edu/~cottrell/cross-gtk/
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
njjesus
njjesus
当前离线
积分
267
IP卡
狗仔卡
发表于 2005-2-18 15:02:16
|
显示全部楼层
有什么意义呢,我认为没有意义。
回复
支持
反对
使用道具
举报
显身卡
likedust
likedust
当前离线
积分
43
IP卡
狗仔卡
发表于 2005-2-26 12:05:54
|
显示全部楼层
不知道交叉编译如何解决系统调用的问题. 期待回答.
回复
支持
反对
使用道具
举报
显身卡
waq
waq
当前离线
积分
1783
IP卡
狗仔卡
发表于 2005-2-26 19:32:08
|
显示全部楼层
Post by
likedust
不知道交叉编译如何解决系统调用的问题. 期待回答.
这个不可能解决吧!
感觉就是在Linux编译Windows的源代码。当然有些代码是与操作系统无关的。
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2005-2-27 09:04:33
|
显示全部楼层
Post by
likedust
不知道交叉编译如何解决系统调用的问题. 期待回答.
编译时只要能连接就行了。运行时才真正需要系统调用的支持。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
开源软件专题讨论
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表