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

相關文章
相關標籤/搜索