私はLinux Ubuntuで開発したWindows上でQTプロジェクトを実行しようとしています。残念ながら、私はブーストライブラリを正しくリンクするためにそれを管理することはできません。この問題の詳細な説明は次のとおりです。Windows上のQT作成者のブーストライブラリへの未定義参照
https://nuwen.net/mingw.html、バージョン13.5からMinGWをダウンロードして、gccバージョン5.3.0がQTのMinGWバージョンと一致するようにしました。このMinGWのバージョンを選択する理由は、zlibなどの圧縮用のブーストライブラリが含まれているためです。コマンドラインから私は問題なくプログラムをコンパイルして実行します:
g ++ -std = C++ 11 -w -IC:/ MinGW/include -LC:/ MinGW/lib bAya.cpp Ao Bo Co - o baya -lboost_iostreams -lz -lbz2
ここで、A、B、Cは、あらかじめコンパイルされたオブジェクトファイルです。
私はMinGWコンパイラ(C:\ MinGW_53 \ MinGW \ bin \ g ++ .exe)を選択し、コンパイラで新しいデフォルトキットを作成しました。
次のように私の.PROファイルが見えます:
MAKE_CXXFLAGS += -std=c++11
INCLUDEPATH += C:/MinGW_53/MinGW/include \
C:/Users/kuzk/Documents/src
LIBS += -LC:/MinGW_53/MinGW/lib/mylib \
-lboost_system \
-lboost_iostreams \
-lz \
-lbz2
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
SOURCES += main.cpp\
mainwindow.cpp \
../src/A.cpp \
../src/B.cpp \
../src/C.cpp
HEADERS += mainwindow.h \
../src/A.h \
../src/B.h \
../src/C.h
フォルダC:私はそれを構築する場合/ MinGW_53/MinGWの/ libに/ MYLIBは、そのよう
libboost_iostreams.aとしての私は.aファイルが含まれています/ MinGW_53/MinGWの/ libに/ MYL:C場合、 `後押しに未定義の参照::のiostream :: zlibの:: default_strategy」興味深いことに
:私は、このような
エラーなど、多くの未定義の参照エラーが発生しますibにはlibstdC++も含まれています。a std :: cout、std :: ifstreamなどのエラーもリンクされます。
私は現在スタックしており、フィードバックに非常に役立ちます。
ベスト、 コンスタンチン
qmakeを再実行しましたか? –
はい、[ビルド]メニューからqmakeを実行してから、プロジェクトを再構築します。まだ成功していません... – Konstantin
これは他のタグよりも[タグ:qt-creator]のほうが多分です。 –