追加のライブラリと QtSql (SQLLite データベースを操作するため) なしで Qt4 を使用するプロジェクトがあり、x86_64 Windows 7 マシン用にクロスコンパイルしたいと考えています。これが私の要約した makefile です (多くのテンプレートを使用するため、main.cpp を除いて、.hpp ファイルのみを使用します)。
CXX=g++-4.8
CXXFLAGS=-std=c++11 -pedantic -Wall -pedantic-errors -Wextra
IPATH=-I/usr/include/qt4/ -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSql
LDFLAGS=-lQtGui -lQtSql -lQtCore
OBJS=main.o
HEADERS=mymoc1.hpp mymoc2.hpp other-headers
all: myexec
myexec: $(OBJS)
$(CXX) $(CXXFLAGS) $(OBJS) -o $@ $(LDFLAGS)
main.o: main.cpp $(HEADERS)
$(CXX) -c $(CXXFLAGS) $< -o $@ $(IPATH)
mymoc1.hpp: the-header-needing-moc.hpp
moc $< -o $@
mymoc2.hpp: other-header-needing-moc.hpp
moc $< -o $@
次のチュートリアルに従います: http://mxe.cc/#tutorial 最初の 4 番目のステップを正常に完了したと仮定すると、5c と 5d のステップのどちらを選択するかで疑問が生じます。私の場合、何をどのように使用しますか? QtSql のような依存関係ではどうなりますか? そしてモックで?
さらに、チュートリアルにあるように、LD、AR、または PKG_CONFIG 変数を定義する必要がありますか? 元のメイクファイルでリンカーまたはアセンブラーを指定しませんでした。そして、私がそうしなければならない場合、なぜですか?
編集私はここでmingw
テンプレートの操作に問題があることを読みました。私は自分のプロジェクトでそれらを深く利用しています。MXE はmingw
内部で使用されるため、MXE を使用する代わりに、他の代替手段 (Windows で直接ビルドするなど) を検討する必要がありますか?