2

追加のライブラリと 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 で直接ビルドするなど) を検討する必要がありますか?

4

1 に答える 1