wine 移植 windows 程序到 linux

       神奇的 wine  ,.....蛋疼的项目。。。。安装好以后 系统多了 一系列以 wine 开头的命令 linux

[root@centos Client]# wine
wine            winecfg         winedbg         wineg++         winemine        wineserver      
wineboot        wineconsole     winedump        winegcc         winepath        winetricks      
winebuild       winecpp         winefile        winemaker       wine-preloader  

其中的 winemaker 能够转换 windows 项目到 linux  并生成相应的 makefile  shell

使用方法 能够直接指定源码目录 也能够指定项目文件。。。 windows

我这里指定的是 VC6 的项目文件 centos

[root@centos Client]# winemaker ShellClient.dsp
Winemaker 0.8.3
Copyright 2000-2004 Francois Gouget <fgouget@codeweavers.com> for CodeWeavers
Copyright 2004 Dimitrie O. Paun
Copyright 2009-2012 Andr� Hentschel
Fixing the source files...
  ./ShellClient.c
  ./zlib/adler32.c
  ./zlib/compress.c
  ./zlib/crc32.c
  ./zlib/deflate.c
  ./zlib/gzclose.c
  ./zlib/gzlib.c
  ./zlib/gzread.c
  ./zlib/gzwrite.c
  ./zlib/infback.c
  ./zlib/inffast.c
  ./zlib/inflate.c
  ./zlib/inftrees.c
  ./zlib/trees.c
  ./zlib/uncompr.c
  ./zlib/zutil.c
  ./zlib/crc32.h
  ./zlib/deflate.h
  ./zlib/gzguts.h
  ./zlib/inffast.h
  ./zlib/inffixed.h
  ./zlib/inflate.h
  ./zlib/inftrees.h
  ./zlib/trees.h
  ./zlib/zconf.h
  ./zlib/zlib.h
  ./zlib/zutil.h
Generating project files...

而后 make 一下 api

[root@centos Client]# make
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o ShellClient.o ShellClient.c
ShellClient.c: In function ‘load_deps’:
ShellClient.c:203: warning: assignment from incompatible pointer type
ShellClient.c:204: warning: assignment from incompatible pointer type
ShellClient.c:214: warning: assignment from incompatible pointer type
ShellClient.c:215: warning: assignment from incompatible pointer type
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/adler32.o zlib/adler32.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/compress.o zlib/compress.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/crc32.o zlib/crc32.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/deflate.o zlib/deflate.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/gzclose.o zlib/gzclose.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/gzlib.o zlib/gzlib.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/gzread.o zlib/gzread.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/gzwrite.o zlib/gzwrite.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/infback.o zlib/infback.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/inffast.o zlib/inffast.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/inflate.o zlib/inflate.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/inftrees.o zlib/inftrees.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/trees.o zlib/trees.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/uncompr.o zlib/uncompr.c
winegcc -c  -W -fexceptions -g -O0 -mno-cygwin  -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS   -o zlib/zutil.o zlib/zutil.c
winegcc -mwindows -mno-cygwin -o shellclient.exe ./ShellClient.o ./zlib/adler32.o ./zlib/compress.o ./zlib/crc32.o ./zlib/deflate.o ./zlib/gzclose.o ./zlib/gzlib.o ./zlib/gzread.o ./zlib/gzwrite.o ./zlib/infback.o ./zlib/inffast.o ./zlib/inflate.o ./zlib/inftrees.o ./zlib/trees.o ./zlib/uncompr.o ./zlib/zutil.o      -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -luuid -lodbc32 -lodbccp32   -lodbc32 -lole32 -loleaut32 -lwinspool -lodbccp32 -lws2_32 -liphlpapi -luuid

生成 exe 了。。。你敢信。。。。 ui

还能直接执行这个 exe 。。。 .net

[root@centos Client]# ./shellclient.exe
icmp shell
By sincoder
Usage:[ip]  [password]

来看看生成的这个 exe 是什么文件 code

[root@centos Client]# file shellclient.exe
shellclient.exe: POSIX shell script text executable server

原来生成的exe 是一个脚本而已 。。。。。。。 ip

相关文章
相关标签/搜索