質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

3回答

6515閲覧

[Qt] Qt初挑戦

BeatStar

総合スコア4958

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2017/08/25 05:34

趣味でC++ ( いわゆる Better-C )やっています。

前回の質問( C++用ウィジット はどれがいいか ) でお勧めされたものの中でQtっていうのがあり、それをやってみました。

"Hello Word" すら表示できないと意味ないので、「Qt 入門」でヒットしたPDFにあったサンプルコードを実際に動かしてみました。

Qt5 を MinGW用のやつでインストールしましたが、あまりにも遅いため、必要なヘッダやaファイルのみを抜き出して "Qt" ディレクトリにセットします。

( Qt全体で 3GB以上あって、FFCというファイルをコピー/移動するソフトでUSB等に移動したりするだけでも 20分以上も16%... )

C++

1#include<iostream> 2#include<QtWidgets/QApplication> 3#include<QtWidgets/QLabel> 4 5using namespace std; 6 7int main( int argc, char *argv[] ){ 8 QApplication app(argc, argv); 9 QLabel* label = new QLabel("Hello Qt!"); 10 label->show(); 11return app.exec(); 12}

と記述して libQt5Widgets.a 等の必要なライブラリをリンクしました。

コンパイルは通ったのですが、いざ実行すると「Qt5Widgets.dllがないため~」等のエラーで実行できませんでした。

無いというなら追加すればいいと思ったので Qt5Widgets.dll 等を個別にダウンロードして追加しました。

「〇〇.dllがないため~」エラーはおさまりましたが、今度は「エントリポイント__gxx_personality_sj0がダイナミックリンクライブラリ(ファイルパス)から見つかりませんでした」と

「エントリポイントInterlockedCompareExchange@12がダイナミックリンクライブラリ(ファイルパス)から見つかりませんでした」と

「MSVCR110.dllが見つからないため~」で実行できません。

MSVCR110.dll って... VC++版じゃないのに... ( インストールすれば済みそうですが。 )

「エントリポイント~」 がどう対処すればいいかわかりません。

一応Googleで検索してみましたが、2chでよくわからない...

「Qt 総合スレ 15」では

「Qtのインストール先の\binディレクトリにPATHが通ってないから。
Qt Creatorからだと子プロセスのPATHに上のディレクトリを追加してるから動く。」

とあります。
やっぱりQtCreatorを入れないとダメなのでしょうか?
( 一般ユーザはどうするんだろ... )

同スレッド ( 2chの ) には

「x64でビルドしたらx64のDLL、x86でビルドしたらx86のDLLが必要で
両方共に名前は全く同じだけど中身は別になる」

とありました。

これって 名前が同じでも ビルドしたWindowsのバージョンで違うってことでしょうか?

わけわからないので、再度Qt5をインストール ( ただし、いつまでたっても60%前後なので 途中でquit )し、

生成された DLLをすべて突っ込んでみました。( 後から必要・不必要 を仕分けするつもりですが。 )

一応 上記のエラーはすべて消えました。

しかし新たに「プロシージャエントリ_ZN10QArrayData10deallocateEPS_jjがダイナミックリンクライブラリ(パス)(実行ファイル名)から~」と出ます。

メインの実行ファイルから見つからないって出ますが、

サンプルコードとしてあったやつを使ったのに...

どうすればよいのでしょうか...

[情報]
言語: C++
コンパイラ: MinGW
ライブラリ: Qt
OS: Windows10

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己流で変なことをするのをやめ、元の状態に戻してから公式のマニュアルの通りにインストールしてください。
それで99%解決します。それでも解決しなければ質問してください。

投稿2017/08/27 00:36

yuki23

総合スコア1448

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんにちは。

Qt5 を MinGW用のやつでインストールしましたが、あまりにも遅いため、必要なヘッダやaファイルのみを抜き出して "Qt" ディレクトリにセットします。

動作に成功するまえに、これをやると無駄な苦労をするので急がば回れのように感じます。

コンパイルは通ったのですが、いざ実行すると「Qt5Widgets.dllがないため~」等のエラーで実行できませんでした。

Qtをインストールしたフォルダのバージョン\mingw492_32\binに有るはずです。
そのパスをPATHへ追加すれば良いです。

やっぱりQtCreatorを入れないとダメなのでしょうか?

普通にインストールすると入っているはずです。toolsの下です。
Qt初心者がQtCreatorなしでQt開発ってかなり厳しいかも知れません。

投稿2017/08/25 07:06

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

MinGW用という事で、32bit版になるのではないかと思いますが
https://www.qt.io/download-open-source/ から
Qt 5.6.2 for Windows 32-bit をインストールされたという事でしょうか?

であれば、すべて32bit版を使う必要がありますが、
追加でダウンロードしたDLLは32bit版でしょうか?
(OS の 32bit/64bit は関係ありません。)

MSVCR110 についても x86 をインストールしてみてください。

投稿2017/08/25 06:35

koguma98

総合スコア288

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2017/08/25 07:36

私は外出先でDLしていて、どれだったかわからないのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問