趣味で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
宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。