OS: Fedora 20
compiler: MinGW
source: spice-gtk-0.26.tar.bz2
spice-gtk-0.28.tar.bz2
0. 前言
這篇的的目的是為了在 linux 下編譯給 windows 用的 SPICE-GTK dll.1. 建置環境
安裝完 Fedora 完後, 除了安裝 MinGW 外, 會再安裝一些協助工具1. 安裝 MinGW:
sudo yum install mingw*
2. 右鍵終端機
sudo yum install nautilus-open-terminal
3. FTP傳輸
sudo yum install filezilla
4. 啟動桌面
sudo yum install gnome-tweak-tool
安裝完後重啟電腦, 輸入 gnome-tweak-tool 在桌面項目中開啟"由文件管理器处理桌面"
5. 文件編輯器 gvim
看看就好, 不怎麼好用
安裝完 Ubuntu 完後, 安裝 MinGW:sudo apt-get install mingw*
2.建置 spice-gtk ( http://www.spice-space.org/download.html )
( *註 2014/11/18測試 MinGw 安裝時含有舊版 spice-gtk-0.22 )1. Fedora必要元件安裝
sudo yum install gtk2-devel gtk3-devel spice-protocol intltool openssl-devel gobject-introspection-devel libjpeg-turbo-devel zlib-devel cyrus-sasl-devel gtk-doc pygtk2-devel python libcacard gstreamer-devel gstreamer-plugins-base-devel libtool automake vala perl-Text-CSV
Ubuntu必要元件安裝?
sudo apt-get install intltool
2. 設定編譯環境
mingw32-configure [參數]
32bit: mingw32-configure --without-sasl --with-audio=gstreamer --with-coroutine=winfiber --disable-smartcard --without-python --enable-usbredir=yes --disable-gtk-doc --disable-werror --enable-static --enable-shared --with-gtk=2.0
64bit: mingw64-configure --without-sasl --with-audio=gstreamer --with-coroutine=winfiber --disable-smartcard --without-python --enable-usbredir=yes --disable-gtk-doc --disable-werror --enable-static --enable-shared --with-gtk=2.0
詳細參數官網有, 以下列出一些簡單的
#####################################################################
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--enable-maintainer-mode
enable make rules and dependencies not useful (and
sometimes confusing) to the casual installer
--disable-nls do not use Native Language Support
--enable-gtk-doc use gtk-doc to build documentation [[default=no]]
--enable-gtk-doc-html build documentation in html format [[default=yes]]
--enable-gtk-doc-pdf build documentation in pdf format [[default=no]]
--enable-smartcard=[auto/yes/no]
Enable smartcard support [default=auto]
--enable-usbredir=[auto/yes/no]
Enable usbredir support [default=auto]
--enable-polkit=[auto/yes/no]
Enable PolicyKit support (for the usb acl
helper)[default=auto]
--enable-pie=[auto/yes/no]
Enable position-independent-executable support (for
the usb acl helper)[default=auto]
--enable-introspection=[no/auto/yes]
Enable introspection for this build
--enable-controller Enable controller build [default=yes]
--enable-vala Check for vala requirements [default=no]
--enable-dbus=[auto/yes/no]
Enable dbus support for desktop integration
(disabling automount) [default=auto]
--enable-werror Use -Werror (if supported)
#####################################################################
ptional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot=DIR Search for dependent libraries within DIR
(or the compiler's sysroot if not specified).
--with-html-dir=PATH path to installed docs
--with-sasl=[yes/no/auto]
use cyrus SASL for authentication [default=auto]
--with-gtk=[2.0/3.0] which gtk+ version to compile against [default=3.0]
--with-x11 Use x11/shm display backend instead of cairo
[default=no]
--with-pnp-ids-path Specify the path to pnp.ids [default=(internal)]
--with-audio=[gstreamer/pulse/auto/no]
Select audio backend [default=auto]
--with-usb-acl-helper-dir=DIR
Directory where the USB ACL helper binary should be
installed
--with-usb-ids-path Specify the path to usb.ids [default=auto]
--with-coroutine=[ucontext/gthread/winfiber/auto]
use ucontext or GThread for coroutines
[default=auto]
--with-python build python bindings [default=auto]
#####################################################################
編譯
32bit: mingw32-make
64bit: mingw64-make
* 0.28 64bit 在 /usr/x86_64-w64-mingw32/sys-root/mingw/lib 產出有問題
1. libspice-client-gtk-3.0.la 中的
dependency_libs= ' /usr/i686-w64-mingw32/ ...修正為 dependency_libs= ' /usr/x86_64-w64-mingw32/ ...
libdir='/usr/i686-w64-mingw32/ ... 修正為 libdir='/usr/x86_64-w64-mingw32/
2. libspice-client-glib-2.0.la , libspice-controller.la
libdir='/usr/i686-w64-mingw32/ ... 修正為 libdir='/usr/x86_64-w64-mingw32/
安裝
32bit: sudo mingw32-make install
64bit: sudo mingw64-make install
產出在 /usr/i686-w64-mingw32/sys-root/mingw/bin 下
libspice-client-glib-2.0-8.dll
libspice-client-gtk-2.0-4.dll or libspice-client-gtk-3.0-4.dll 根據設定參數.
libspice-controller-0.dll
spicy.exe
spicy-screenshot.exe
spicy-stats.exe
產出在 /usr/i686-w64-mingw32/sys-root/mingw/lib 下
libspice-client-glib-2.0.la
libspice-client-glib-2.0.a
libspice-client-glib-2.0.dll.a
libspice-controller.la
libspice-controller.dll.a
libspice-controller .a
libspice-client-gtk-2.0.a
libspice-client-gtk-2.0.la
libspice-client-gtk-2.0.dll.a
沒有留言:
張貼留言