以前紹介したQt SDKなんだが
Qt5になってさらに便利になってたのでそれを紹介する記事
なにが言いたいのかというと同じC言語のコードでWin,Mac,Linux,android,iOS
に使いまわせるようになってた。
だからある意味C言語のそもそものルーツと言える性質である、
高い他のOSへの移植性が復活しつつあるってことだ。
Qt5のダウンロードサイト
http://qt-project.org/downloads
をみたらわかるのだが
Windows むけのSDKで
Wndows,Android向けのソフト
Mac むけのSDKで
Mac,iOS向けのソフト
LinuxむけのSDKで
Linux,Android向けのソフト
が作れるんで、PCとMACを両方用意すれば
Windows StoreとGoogle Play,Mac App Stor,(ubuntu software center)
に同じソースを使いまわして同時リリースってのが現実味を帯びる。
とくにiOS,Androidに同時リリースが望まれる昨今、これは大きいメリットだろう。
しかも言語は鉄板のC言語だからソフトもたしかなものになる。多分Javaよりも。
わたしあのJavaのバイナリ互換性という考え方が嫌いなんですよ。動作が重いし。
とは言うものの実際に使ってみたがLinuxで動くのがAndroidではコンパイルできない
(ライブラリがないからだった)
Android APIをつかいたいところをCでどう書けばいいのかわからない
あとAndroidマニフェストに直接書きたい
とかいろいろ問題あるのでまだまだ考えるところはありそう。
でも可能性は高いと思ったんでした。
※あとWindows Phoneはどうなのという君のために
http://ayufan.eu/projects/qt5-windows-phone-8/
C言語でandroidアプリを作った
http://kokawa2003.blogspot.com/2012/08/candroid.html
ubuntu 12.04 64bitでWin32をクロスコンパイル5
http://kokawa2003.blogspot.com/2012/08/ubuntu-1204-64bitwin325.html
ubuntu 12.04 64bitでWin32をクロスコンパイル4
http://kokawa2003.blogspot.com/2012/08/ubuntu-1204-64bitwin324.html
ubuntu 12.04 64bitでWin32をクロスコンパイル3
http://kokawa2003.blogspot.com/2012/08/ubuntu-1204-64-bitwin323.html
ubuntu 12.04 64bitでWin32をクロスコンパイル2
http://kokawa2003.blogspot.com/2012/08/ubuntu-1204-64-bitwin32_12.html
ubuntu 12.04 64bitでWin32をクロスコンパイル1
http://kokawa2003.blogspot.com/2012/08/ubuntu-1204-64-bitwin32.html
2014年1月13日月曜日
2012年9月5日水曜日
C言語でIPhoneプログラム
Qt でIPhoneプログラムができるらしい。
QtでAndroidプログラムはもう紹介したからこれでほぼすべての環境をQtでプログラムできる事になる。
ただ、らしい。と書くのはまだ確認してないの意味。
また、そのQtはMacのQtらしい。なのでUbuntuは今回お休み
詳細はこれ
http://labs.qt.nokia.co.jp/2011/08/17/update-on-uikit-lighthouse-platform.html
XcodeでIphoneプログラムはやったことあるが,Objective-CでちょっとやになったのでC言語でできるのなら大歓迎なのです
Xcodeの入っているMacはちょっと会社にあるのでそれでやってみようかなーと思う。(当然休日にね)
上記記事をまとめると
環境として
①Mac OS X
②Xcode
③Qt ただしhttps://qt.gitorious.org/qt/qt/commits/4.8 ここからダウンロード
が必要
とりあえず①②はすでに満たされたからあと③だけだけどこれはダウンロードして
src/plugins/platforms/uikitにあるREADMEをよめってことらしい。
結論からいうと③を
ビルドエラーの場合はmkspecs/qpa/macx-iphonesimulator-g++/qmake.conf と mkspecs/qpa/macx-iphonedevice-g++/qmake.conf の QMAKE_IOS_SDK 変数を使っているSDKのバージョンに合わせて調整
終わったらXcodeでqt-src/src/plugins/platforms/uikit/examplesのサンプルが開ける
そして開くと画面上のツールバーでターゲットが “<example> simulator” でプラットフォームが “iPhone 4.3 Simulator” が選択されている。
でRunできる。
ということです。今度の休みにやってみます。
QtでAndroidプログラムはもう紹介したからこれでほぼすべての環境をQtでプログラムできる事になる。
ただ、らしい。と書くのはまだ確認してないの意味。
また、そのQtはMacのQtらしい。なのでUbuntuは今回お休み
詳細はこれ
http://labs.qt.nokia.co.jp/2011/08/17/update-on-uikit-lighthouse-platform.html
XcodeでIphoneプログラムはやったことあるが,Objective-CでちょっとやになったのでC言語でできるのなら大歓迎なのです
Xcodeの入っているMacはちょっと会社にあるのでそれでやってみようかなーと思う。(当然休日にね)
上記記事をまとめると
環境として
①Mac OS X
②Xcode
③Qt ただしhttps://qt.gitorious.org/qt/qt/commits/4.8 ここからダウンロード
が必要
とりあえず①②はすでに満たされたからあと③だけだけどこれはダウンロードして
src/plugins/platforms/uikitにあるREADMEをよめってことらしい。
結論からいうと③を
/Users/me/Qt/qt-srcに展開して以下のコマンドを実行mkdir /Users/me/Qt/qt-lighthouse-ios-simulator cd /Users/me/Qt/qt-lighthouse-ios-simulator ../qt-src/configure -qpa -xplatform qpa/macx-iphonesimulator-g++ -arch i386 -developer-build -release -opengl es2 -no-accessibility -no-qt3support -no-multimedia -no-phonon-backend -no-svg -no-webkit -no-scripttools -no-openssl -no-sql-mysql -no-sql-odbc -no-cups -no-iconv -no-dbus -static -nomake tools -nomake demos -nomake docs -nomake examples -nomake translations make cd src/plugins/platforms/uikit makeで同じようにqt-lighthouse-ios-deviceに対してもする
ビルドエラーの場合はmkspecs/qpa/macx-iphonesimulator-g++/qmake.conf と mkspecs/qpa/macx-iphonedevice-g++/qmake.conf の QMAKE_IOS_SDK 変数を使っているSDKのバージョンに合わせて調整
終わったらXcodeでqt-src/src/plugins/platforms/uikit/examplesのサンプルが開ける
そして開くと画面上のツールバーでターゲットが “<example> simulator” でプラットフォームが “iPhone 4.3 Simulator” が選択されている。
でRunできる。
ということです。今度の休みにやってみます。
2012年8月19日日曜日
C言語でandroidアプリを作った
最近C言語でAndroidアプリを作ったのでその顛末を記しておく
本当はgoogle nenusにandroid OSごとカーネルドライバをつけて再コンパイルしてインストールしなおしてそれを使うアプリをCで作ったっていうことなんだけど(しかも仕事中に)、一気に書くと爆発しそうなのでまずそのCでアプリを作る方法を書いておきたい。
普通android appはandroid sdkを用いてJavaで開発するのだけど、これだとandroid アプリの下の層のLinuxのドライバー部分にアクセスしてUSBシリアル通信したいとき、つまり/dev/ttyUSBをコントロールしたい時難しいことになる。というかできないと思う。(私が知らないだけならすみません)
そこでC言語でAndroid appが書ければということになるがそれがわりと簡単にできた。
情報元はこれ
necessitas
http://sourceforge.net/p/necessitas/home/necessitas/
このnecessitasインストールするとわかるけどandroid sdkが付いたQtです。(またQtかよ)
つまり今までQtで書いたコードがあればそれをそのまま一行もコードを書かずにandroid にインストールできます。
私の場合Ubuntuがあるのでそれで作ったQtのソフトがそのままインストールできました。
とはいってもフォントとか画面サイズとかUI関係の修正はする必要があります。
やり方
http://sourceforge.net/projects/necessitas/files/
からインストーラーをダウンロード
私の場合Ubuntuなので
necessitas-0.3-online-sdk-installer-linux
を入れました。他にもWindowsとMac向けがあるようですが使えるかは不明。
あとはそのまま実行すればインストールできます。
でnecessitasを起動するとQtCreatorとクリソツなのでいつもの感覚でコーディング
これ以降の詳細は
http://nop.net-p.org/2011/02/25/qt-for-android/
こことか読んでください。
実行時deployの設定でministroを指定すること
雑誌の紹介記事みたくなってしまった。
本当はgoogle nenusにandroid OSごとカーネルドライバをつけて再コンパイルしてインストールしなおしてそれを使うアプリをCで作ったっていうことなんだけど(しかも仕事中に)、一気に書くと爆発しそうなのでまずそのCでアプリを作る方法を書いておきたい。
普通android appはandroid sdkを用いてJavaで開発するのだけど、これだとandroid アプリの下の層のLinuxのドライバー部分にアクセスしてUSBシリアル通信したいとき、つまり/dev/ttyUSBをコントロールしたい時難しいことになる。というかできないと思う。(私が知らないだけならすみません)
そこでC言語でAndroid appが書ければということになるがそれがわりと簡単にできた。
情報元はこれ
necessitas
http://sourceforge.net/p/necessitas/home/necessitas/
このnecessitasインストールするとわかるけどandroid sdkが付いたQtです。(またQtかよ)
つまり今までQtで書いたコードがあればそれをそのまま一行もコードを書かずにandroid にインストールできます。
私の場合Ubuntuがあるのでそれで作ったQtのソフトがそのままインストールできました。
とはいってもフォントとか画面サイズとかUI関係の修正はする必要があります。
やり方
http://sourceforge.net/projects/necessitas/files/
からインストーラーをダウンロード
私の場合Ubuntuなので
necessitas-0.3-online-sdk-installer-linux
を入れました。他にもWindowsとMac向けがあるようですが使えるかは不明。
あとはそのまま実行すればインストールできます。
でnecessitasを起動するとQtCreatorとクリソツなのでいつもの感覚でコーディング
これ以降の詳細は
http://nop.net-p.org/2011/02/25/qt-for-android/
こことか読んでください。
実行時deployの設定でministroを指定すること
雑誌の紹介記事みたくなってしまった。
2012年8月14日火曜日
ubuntu 12.04 64bitでWin32をクロスコンパイル5
ubuntu 12.04 64bitでWin32をクロスコンパイル4 のつづき
で表題改 ubuntu 12.04 64bitでWin64をクロスコンパイル
多分最終章
Ubuntuの上でqtをwin64クロスコンパイルする環境はすべて整った。
とりあえず4でつくった64bitのQtを/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/にmvします。
つまり
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/include
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/lib
のところにそれぞれのファイルがコピーされます
そしてmkspecを64bit用に作成
cd /usr/share/qt4/mkspecs/
sudo cp -rf win32-x-g++ win64-x-g++
cd win64-x-g++
sudo vi qmake.conf
編集内容は以下の通り
#
# qmake configuration for win32-g++
#
# Written for MinGW
#
MAKEFILE_GENERATOR = MINGW
TEMPLATE = app
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
QT += core gui
DEFINES += UNICODE QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
QMAKE_EXT_OBJ = .o
QMAKE_EXT_RES = _res.o
QMAKE_CC = x86_64-w64-mingw32-gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS =
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CXX = x86_64-w64-mingw32-g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
QMAKE_INCDIR = /usr/x86_64-w64-mingw32/include
QMAKE_INCDIR_QT = /home/kokawa2003/.wine/drive_c/Qt64/4.8.1/include
QMAKE_LIBDIR_QT = /home/kokawa2003/.wine/drive_c/Qt64/4.8.1/lib
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
QMAKE_LINK = x86_64-w64-mingw32-g++
QMAKE_LINK_C = x86_64-w64-mingw32-gcc
QMAKE_LFLAGS = -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
QMAKE_LFLAGS_EXCEPTIONS_OFF =
QMAKE_LFLAGS_RELEASE = -Wl,-s
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL = -shared
QMAKE_LINK_OBJECT_MAX = 10
QMAKE_LINK_OBJECT_SCRIPT= object_script
QMAKE_PREFIX_STATICLIB = lib
QMAKE_EXTENSION_STATICLIB = a
QMAKE_LIBS =
QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
QMAKE_LIBS_NETWORK = -lws2_32
QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32
QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain
!isEmpty(QMAKE_SH) {
MINGW_IN_SHELL = 1
QMAKE_DIR_SEP = /
QMAKE_QMAKE ~= s,\\\\,/,
QMAKE_COPY = cp
QMAKE_STREAM_EDITOR = sed
QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm
QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
} else {
QMAKE_COPY = copy /y
QMAKE_COPY_DIR = xcopy /s /q /y /i
QMAKE_MOVE = move
QMAKE_DEL_FILE = del
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = if not exist
}
QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc
QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic
QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc
QMAKE_IDL = midl
QMAKE_LIB = x86_64-w64-mingw32-ar -ru
QMAKE_RC = x86_64-w64-mingw32-windres
QMAKE_ZIP = zip -r -9
QMAKE_STRIP = x86_64-w64-mingw32-strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
load(qt_config)
ここまででで環境構築終了
Qtのプロジェクトをtestqtとするとき
qmake -spec win64-x-g++ testqt.pro
make
で64bit のEXEができます。
file testqt.exe
で64bitを確認してください。
実行には
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtCore4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtDeclarative4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtGui4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtNetwork4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtScript4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtSql4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtXmlPatterns4.dll .
/usr/lib/gcc/x86_64-w64-mingw32/4.6/libgcc_s_sjlj-1.dll .
/usr/lib/gcc/x86_64-w64-mingw32/4.6/libstdc++-6.dll .
が私の場合は必要でした。(すべて64bitで揃える)
上のdllをexeのローカルにコピーのあと
wine testqt.exe
で見事64bitのexeが起動します。
で表題改 ubuntu 12.04 64bitでWin64をクロスコンパイル
多分最終章
Ubuntuの上でqtをwin64クロスコンパイルする環境はすべて整った。
とりあえず4でつくった64bitのQtを/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/にmvします。
つまり
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/include
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/lib
のところにそれぞれのファイルがコピーされます
そしてmkspecを64bit用に作成
cd /usr/share/qt4/mkspecs/
sudo cp -rf win32-x-g++ win64-x-g++
cd win64-x-g++
sudo vi qmake.conf
編集内容は以下の通り
#
# qmake configuration for win32-g++
#
# Written for MinGW
#
MAKEFILE_GENERATOR = MINGW
TEMPLATE = app
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
QT += core gui
DEFINES += UNICODE QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
QMAKE_EXT_OBJ = .o
QMAKE_EXT_RES = _res.o
QMAKE_CC = x86_64-w64-mingw32-gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS =
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CXX = x86_64-w64-mingw32-g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
QMAKE_INCDIR = /usr/x86_64-w64-mingw32/include
QMAKE_INCDIR_QT = /home/kokawa2003/.wine/drive_c/Qt64/4.8.1/include
QMAKE_LIBDIR_QT = /home/kokawa2003/.wine/drive_c/Qt64/4.8.1/lib
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
QMAKE_LINK = x86_64-w64-mingw32-g++
QMAKE_LINK_C = x86_64-w64-mingw32-gcc
QMAKE_LFLAGS = -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
QMAKE_LFLAGS_EXCEPTIONS_OFF =
QMAKE_LFLAGS_RELEASE = -Wl,-s
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL = -shared
QMAKE_LINK_OBJECT_MAX = 10
QMAKE_LINK_OBJECT_SCRIPT= object_script
QMAKE_PREFIX_STATICLIB = lib
QMAKE_EXTENSION_STATICLIB = a
QMAKE_LIBS =
QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
QMAKE_LIBS_NETWORK = -lws2_32
QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32
QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain
!isEmpty(QMAKE_SH) {
MINGW_IN_SHELL = 1
QMAKE_DIR_SEP = /
QMAKE_QMAKE ~= s,\\\\,/,
QMAKE_COPY = cp
QMAKE_STREAM_EDITOR = sed
QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm
QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
} else {
QMAKE_COPY = copy /y
QMAKE_COPY_DIR = xcopy /s /q /y /i
QMAKE_MOVE = move
QMAKE_DEL_FILE = del
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = if not exist
}
QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc
QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic
QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc
QMAKE_IDL = midl
QMAKE_LIB = x86_64-w64-mingw32-ar -ru
QMAKE_RC = x86_64-w64-mingw32-windres
QMAKE_ZIP = zip -r -9
QMAKE_STRIP = x86_64-w64-mingw32-strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
load(qt_config)
ここまででで環境構築終了
Qtのプロジェクトをtestqtとするとき
qmake -spec win64-x-g++ testqt.pro
make
で64bit のEXEができます。
file testqt.exe
で64bitを確認してください。
実行には
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtCore4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtDeclarative4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtGui4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtNetwork4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtScript4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtSql4.dll .
/home/kokawa2003/.wine/drive_c/Qt64/4.8.1/bin/QtXmlPatterns4.dll .
/usr/lib/gcc/x86_64-w64-mingw32/4.6/libgcc_s_sjlj-1.dll .
/usr/lib/gcc/x86_64-w64-mingw32/4.6/libstdc++-6.dll .
が私の場合は必要でした。(すべて64bitで揃える)
上のdllをexeのローカルにコピーのあと
wine testqt.exe
で見事64bitのexeが起動します。
2012年8月13日月曜日
ubuntu 12.04 64bitでWin32をクロスコンパイル4
ubuntu 12.04 64bitでWin32をクロスコンパイル3 のつづき
そこでつぎに Qtのmingw 64bit版を用意することにした。
http://www.robwork.dk/jrobwork/index.php?option=com_content&view=article&id=71:installation-of-qt&catid=44:installation&Itemid=67&limitstart=2
基本的にはこのサイトのとおりにすればできた。
LINUXでクロスコンパイルしてみてもいいけど面倒なのでWindows7 64bit で行った。
まずmingw-w64を sourceforgeからダウンロードする。
http://sourceforge.net/projects/mingw-w64/files/
一番上のダウンロードを選ぶとソースが落ちてくるがgccのソースビルドなんてやってられないのでバイナリを直接ダウンロード
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/sezero_4.5_20111101/mingw-w64-bin_x86_64-mingw_20111101_sezero.zip/download
これを解凍して /mingw64/bin にパスを通す。
次にPerlを用意。これはAcitivePerlがいいらしいのでこれをインストール
http://www.activestate.com/activeperl/downloads/thank-you?dl=http://downloads.activestate.com/ActivePerl/releases/5.14.2.1402/ActivePerl-5.14.2.1402-MSWin32-x64-295342.msi
デフォルトでインストールするとパスが通ると思います。
で環境が整ったので次にQtのソース
まずhttp://qt.nokia.com/downloads から
http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.2.tar.gz をダウンロードして展開
でコマンドラインを起動して展開した場所に移動し
configure -opensource -no-sql-sqlite -no-qt3support -no-webkit -no-scripttools -fast -platform win32-g++
を実行。
成功すると次に
mingw32-make
をするようにいわれるのでいわれるとおりに実行
うまく行けば完了して*.dll、*.exe、*.aができます。
Qtのプロジェクトをコンパイルすればできるはずです。QtCreatorとかないのがあれですが
これをそのまま圧縮してubuntuに持ってきます。
解凍後qt-everywhere-opensource-src-4.8.1/bin で
cp /usr/lib/gcc/x86_64-w64-mingw32/4.6/libgcc_s_sjlj-1.dll .
cp /usr/lib/gcc/x86_64-w64-mingw32/4.6/libstdc++-6.dll .
で2ファイル補うと
qtdemo.exe がwine 64bit で動きます。と行ってもプロジェクトがないので起動するだけですが。
とりあえず64bitのビルドが成功したのがわかります。
これと同じ事をmkspecをいじればUbuntuでもできるとおもうが、そこまでこだわる気力がない。
そこでつぎに Qtのmingw 64bit版を用意することにした。
http://www.robwork.dk/jrobwork/index.php?option=com_content&view=article&id=71:installation-of-qt&catid=44:installation&Itemid=67&limitstart=2
基本的にはこのサイトのとおりにすればできた。
LINUXでクロスコンパイルしてみてもいいけど面倒なのでWindows7 64bit で行った。
まずmingw-w64を sourceforgeからダウンロードする。
http://sourceforge.net/projects/mingw-w64/files/
一番上のダウンロードを選ぶとソースが落ちてくるがgccのソースビルドなんてやってられないのでバイナリを直接ダウンロード
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/sezero_4.5_20111101/mingw-w64-bin_x86_64-mingw_20111101_sezero.zip/download
これを解凍して /mingw64/bin にパスを通す。
次にPerlを用意。これはAcitivePerlがいいらしいのでこれをインストール
http://www.activestate.com/activeperl/downloads/thank-you?dl=http://downloads.activestate.com/ActivePerl/releases/5.14.2.1402/ActivePerl-5.14.2.1402-MSWin32-x64-295342.msi
デフォルトでインストールするとパスが通ると思います。
で環境が整ったので次にQtのソース
まずhttp://qt.nokia.com/downloads から
http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-4.8.2.tar.gz をダウンロードして展開
でコマンドラインを起動して展開した場所に移動し
configure -opensource -no-sql-sqlite -no-qt3support -no-webkit -no-scripttools -fast -platform win32-g++
を実行。
成功すると次に
mingw32-make
をするようにいわれるのでいわれるとおりに実行
うまく行けば完了して*.dll、*.exe、*.aができます。
Qtのプロジェクトをコンパイルすればできるはずです。QtCreatorとかないのがあれですが
これをそのまま圧縮してubuntuに持ってきます。
解凍後qt-everywhere-opensource-src-4.8.1/bin で
cp /usr/lib/gcc/x86_64-w64-mingw32/4.6/libgcc_s_sjlj-1.dll .
cp /usr/lib/gcc/x86_64-w64-mingw32/4.6/libstdc++-6.dll .
で2ファイル補うと
qtdemo.exe がwine 64bit で動きます。と行ってもプロジェクトがないので起動するだけですが。
とりあえず64bitのビルドが成功したのがわかります。
これと同じ事をmkspecをいじればUbuntuでもできるとおもうが、そこまでこだわる気力がない。
ubuntu 12.04 64bitでWin32をクロスコンパイル3
ubuntu 12.04 64bitでWin32をクロスコンパイル2 のつづき
これでmkspecができたのでWindows用のQtコンパイルができます
たとえばtestqtでやる場合は
qmake -spec win32-x-g++ testqt.pro
make clean
make
でバッチリいけるはずです。
Qtcreatorでも ビルド設定を-spec win32-x-g++とすればビルドできると思います(これは未確認)
あと当然Debugはできません。
なお実行するときはDLLが必要です。
私のばあい
/usr/lib/gcc/i686-w64-mingw32/4.6/libgcc_s_sjlj-1.dll
/usr/lib/gcc/i686-w64-mingw32/4.6/libstdc++-6.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/libgcc_s_dw2-1.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/mingwm10.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtCore4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtDeclarative4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtGui4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtNetwork4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtScript4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtSql4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtXmlPatterns4.dll
をEXEのあるところにコピーする必要がありました。
実行はWineでもWINDOWSでもどちらもうまくいきます。
これでmkspecができたのでWindows用のQtコンパイルができます
たとえばtestqtでやる場合は
qmake -spec win32-x-g++ testqt.pro
make clean
make
でバッチリいけるはずです。
Qtcreatorでも ビルド設定を-spec win32-x-g++とすればビルドできると思います(これは未確認)
あと当然Debugはできません。
なお実行するときはDLLが必要です。
私のばあい
/usr/lib/gcc/i686-w64-mingw32/4.6/libgcc_s_sjlj-1.dll
/usr/lib/gcc/i686-w64-mingw32/4.6/libstdc++-6.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/libgcc_s_dw2-1.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/mingwm10.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtCore4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtDeclarative4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtGui4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtNetwork4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtScript4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtSql4.dll
/home/kokawa2003/.wine/drive_c/Qt/4.8.0/bin/QtXmlPatterns4.dll
をEXEのあるところにコピーする必要がありました。
実行はWineでもWINDOWSでもどちらもうまくいきます。
ubuntu 12.04 64bitでWin32をクロスコンパイル2
ubuntu 12.04 64bitでWin32をクロスコンパイル1 のつづき
次にUbuntuのQtでWin32をクロスコンパイルしてみる。
まずQtCreatorで適当なサンプルプロジェクトを作ってみる。(当然Linuxむけ)
ここではtestqt とする。実行できるのを確認。
Qtの知識がない人は諦めるか勉強してください。
次にWindows用のQtをインストールします
$ wine qt-win-opensource-4.8.0-mingw.exe
これでWindows用のQtが私の場合
/home/kokawa2003/.wine/drive_c/Qt/
にインストールされます。
なお途中で出る警告のたぐい(mingwがないとか)は全て無視で。
次にmkspecを変更します
sudo cp -Rf /usr/share/qt4/mkspecs/win32-g++ /usr/share/qt4/mkspecs/win32-x-g++
で環境をコピーした後
sudo vi /usr/share/qt4/mkspecs/win32-x-g++/qmake.conf
で編集(別にviは好きなエディタに変更してください)赤字が変更部分
#
# qmake configuration for win32-g++
#
# Written for MinGW
#
MAKEFILE_GENERATOR = MINGW
TEMPLATE = app
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
QT += core gui
DEFINES += UNICODE QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
QMAKE_EXT_OBJ = .o
QMAKE_EXT_RES = _res.o
QMAKE_CC = i686-w64-mingw32-gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS =
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CXX = i686-w64-mingw32-g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
QMAKE_INCDIR = /usr/i686-w64-mingw32/include
QMAKE_INCDIR_QT = /home/kokawa2003/.wine/drive_c/Qt/4.8.0/include
QMAKE_LIBDIR_QT = /home/kokawa2003/.wine/drive_c/Qt/4.8.0/lib
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
QMAKE_LINK = i686-w64-mingw32-g++
QMAKE_LINK_C = i686-w64-mingw32-gcc
QMAKE_LFLAGS = -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
QMAKE_LFLAGS_EXCEPTIONS_OFF =
QMAKE_LFLAGS_RELEASE = -Wl,-s
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL = -shared
QMAKE_LINK_OBJECT_MAX = 10
QMAKE_LINK_OBJECT_SCRIPT= object_script
QMAKE_PREFIX_STATICLIB = lib
QMAKE_EXTENSION_STATICLIB = a
QMAKE_LIBS =
QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
QMAKE_LIBS_NETWORK = -lws2_32
QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32
QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain
!isEmpty(QMAKE_SH) {
MINGW_IN_SHELL = 1
QMAKE_DIR_SEP = /
QMAKE_QMAKE ~= s,\\\\,/,
QMAKE_COPY = cp
QMAKE_STREAM_EDITOR = sed
QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm
QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
} else {
QMAKE_COPY = copy /y
QMAKE_COPY_DIR = xcopy /s /q /y /i
QMAKE_MOVE = move
QMAKE_DEL_FILE = del
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = if not exist
}
QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc
QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic
QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc
QMAKE_IDL = midl
QMAKE_LIB = i686-w64-mingw32-ar -ru
QMAKE_RC = i686-w64-mingw32-windres
QMAKE_ZIP = zip -r -9
QMAKE_STRIP = i686-w64-mingw32-strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
load(qt_config)
これでビルドできるような環境ができた。
本当はQMAKE_INCDIR_QTはユーザーのホームでなく/usr/であるべきだが直さなかった。
次にUbuntuのQtでWin32をクロスコンパイルしてみる。
まずQtCreatorで適当なサンプルプロジェクトを作ってみる。(当然Linuxむけ)
ここではtestqt とする。実行できるのを確認。
Qtの知識がない人は諦めるか勉強してください。
次にWindows用のQtをインストールします
$ wine qt-win-opensource-4.8.0-mingw.exe
これでWindows用のQtが私の場合
/home/kokawa2003/.wine/drive_c/Qt/
にインストールされます。
なお途中で出る警告のたぐい(mingwがないとか)は全て無視で。
次にmkspecを変更します
sudo cp -Rf /usr/share/qt4/mkspecs/win32-g++ /usr/share/qt4/mkspecs/win32-x-g++
で環境をコピーした後
sudo vi /usr/share/qt4/mkspecs/win32-x-g++/qmake.conf
で編集(別にviは好きなエディタに変更してください)赤字が変更部分
#
# qmake configuration for win32-g++
#
# Written for MinGW
#
MAKEFILE_GENERATOR = MINGW
TEMPLATE = app
CONFIG += qt warn_on release link_prl copy_dir_files debug_and_release debug_and_release_target precompile_header
QT += core gui
DEFINES += UNICODE QT_LARGEFILE_SUPPORT
QMAKE_COMPILER_DEFINES += __GNUC__ WIN32
QMAKE_EXT_OBJ = .o
QMAKE_EXT_RES = _res.o
QMAKE_CC = i686-w64-mingw32-gcc
QMAKE_LEX = flex
QMAKE_LEXFLAGS =
QMAKE_YACC = byacc
QMAKE_YACCFLAGS = -d
QMAKE_CFLAGS =
QMAKE_CFLAGS_DEPS = -M
QMAKE_CFLAGS_WARN_ON = -Wall
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2
QMAKE_CFLAGS_DEBUG = -g
QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses
QMAKE_CXX = i686-w64-mingw32-g++
QMAKE_CXXFLAGS = $$QMAKE_CFLAGS
QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS
QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON
QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE
QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG
QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC
QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD
QMAKE_CXXFLAGS_RTTI_ON = -frtti
QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti
QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads
QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions
QMAKE_INCDIR = /usr/i686-w64-mingw32/include
QMAKE_INCDIR_QT = /home/kokawa2003/.wine/drive_c/Qt/4.8.0/include
QMAKE_LIBDIR_QT = /home/kokawa2003/.wine/drive_c/Qt/4.8.0/lib
QMAKE_RUN_CC = $(CC) -c $(CFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CC_IMP = $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
QMAKE_RUN_CXX = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $obj $src
QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
QMAKE_LINK = i686-w64-mingw32-g++
QMAKE_LINK_C = i686-w64-mingw32-gcc
QMAKE_LFLAGS = -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mwindows
QMAKE_LFLAGS_EXCEPTIONS_ON = -mthreads
QMAKE_LFLAGS_EXCEPTIONS_OFF =
QMAKE_LFLAGS_RELEASE = -Wl,-s
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console
QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows
QMAKE_LFLAGS_DLL = -shared
QMAKE_LINK_OBJECT_MAX = 10
QMAKE_LINK_OBJECT_SCRIPT= object_script
QMAKE_PREFIX_STATICLIB = lib
QMAKE_EXTENSION_STATICLIB = a
QMAKE_LIBS =
QMAKE_LIBS_CORE = -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32
QMAKE_LIBS_GUI = -lgdi32 -lcomdlg32 -loleaut32 -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
QMAKE_LIBS_NETWORK = -lws2_32
QMAKE_LIBS_OPENGL = -lglu32 -lopengl32 -lgdi32 -luser32
QMAKE_LIBS_COMPAT = -ladvapi32 -lshell32 -lcomdlg32 -luser32 -lgdi32 -lws2_32
QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain
!isEmpty(QMAKE_SH) {
MINGW_IN_SHELL = 1
QMAKE_DIR_SEP = /
QMAKE_QMAKE ~= s,\\\\,/,
QMAKE_COPY = cp
QMAKE_STREAM_EDITOR = sed
QMAKE_COPY_DIR = cp -r
QMAKE_MOVE = mv
QMAKE_DEL_FILE = rm
QMAKE_MKDIR = mkdir -p
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = test -d
} else {
QMAKE_COPY = copy /y
QMAKE_COPY_DIR = xcopy /s /q /y /i
QMAKE_MOVE = move
QMAKE_DEL_FILE = del
QMAKE_MKDIR = mkdir
QMAKE_DEL_DIR = rmdir
QMAKE_CHK_DIR_EXISTS = if not exist
}
QMAKE_MOC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}moc
QMAKE_UIC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}uic
QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc
QMAKE_IDL = midl
QMAKE_LIB = i686-w64-mingw32-ar -ru
QMAKE_RC = i686-w64-mingw32-windres
QMAKE_ZIP = zip -r -9
QMAKE_STRIP = i686-w64-mingw32-strip
QMAKE_STRIPFLAGS_LIB += --strip-unneeded
load(qt_config)
これでビルドできるような環境ができた。
本当はQMAKE_INCDIR_QTはユーザーのホームでなく/usr/であるべきだが直さなかった。
登録:
投稿 (Atom)