問題タブ [mingw-w64]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
9881 参照

debugging - How to debug DLL load failed: Invalid access to memory location

I have a MinGW64-compiled DLL (python module), which gives error when loaded:

The DLL is linked only to 64bit libraries (Dependency Walker confirms that) and has debugging symbols. The code is fairly complex c++11 (around 30 source files), I cannot bisect it. I did successfully compile and tested other module with MinGW64 already, the toolchain works fine.

Some people around the web reported this error for code using SSE2 instructions (those are supported on my hw, and I don't use them explicitly) or reading from global vars which have not yet been initialized (there is a few functions with __attribute__((constructor)), but those should work in MinGW64 just fine, according to what I've read; update: I removed all constructor functions to make sure it was not the cause - it makes no difference).

What would be methods to analyze where is the error coming from?

What I tried:

When I load the DLL in debugger (using ctypes.WinDLL(...)), I unfortunately get only meaningless stacktrace from gdb - obviously, the error is trapped by ntdll.dll and signal is raised, but it does not give any further hints as to where the error came from:

I also linked the object files with a "hello world" executable, but gdb crashes already when opening the file with Reading symbols from woomain.exe (that's my executable):

gdb crash dialogue

0 投票する
1 に答える
15486 参照

c++ - Windows 7 に MinGW 64 ビットをインストールする方法

Eclipse CDT 64 ビットで作業したいので、自分のマシンにインストールしました。しかしその後、動作するには MinGW が必要であることがわかりました。しかし、MinGW64 ビットのセットアップ方法を知ることができる Web サイトは見つかりませんでした。どんなポインタでも私にとって非常に役に立ちます。

0 投票する
1 に答える
9159 参照

cygwin - Cygwin で OpenMP を MinGW-64 と連携させるにはどうすればよいですか?

シナリオ

OpenMPGMPを使用する C99 ANSI C でアプリケーションを開発しています。当然のように多くのコアを搭載した Linux マシンになるので、基本的に大きな問題はありませんが、ここで議論したくない理由から、64 ビット Windows マシンで Cygwin で開発する必要があります。

32 ビット バージョンの gcc を使用すると、どこかでひどく問題が発生し、実際には CPU の数に等しい係数で高速になるはずの非常に粗雑なシングル スレッド バージョンよりもアプリケーションが約 60 倍遅くなります。 . それは一緒に働くことを不可能にします。何が原因なのか本当にわかりません。とにかく、代わりに MinGW の 64 ビット バージョンを使用することにしx86_64-w64-mingw32-gcc-4.5.3ました。

補足: スローダウンは私のマルチスレッドの欠陥ではないと確信しています。マルチスレッド アプリケーションは、Linux マシン上で正しく、より高速に動作します。

実際の問題

GMP の設定は簡単で、問題なくソースからコンパイルでき、魅力的に機能します。次の簡単な例をコンパイル-fopenmpすることも魅力のように機能します。

しかし、それを実行すると私に

この質問は承知しておりますが、公式の Cygwin リポジトリ以外のバイナリをダウンロードせずに動作させたいと考えています。私の例はスイッチでコンパイルされたので、-fopenmpこれも非常に可能であると確信しています。

誰かがそれを手伝ってくれますか?事前にたくさんありがとう。

0 投票する
1 に答える
1141 参照

c - MinGW-w64 での strerror

この簡単なプログラムを実行してください

Cygwin gcc でコンパイルすると正常に動作します。

MinGW-w64 gcc でコンパイルすると、適切なエラー メッセージが表示されません。

MinGW-w64 に正しいエラー メッセージを表示させるにはどうすればよいですか?

0 投票する
1 に答える
920 参照

cross-compiling - クロスコンパイルされたパッケージをインストールするためにどのパスを使用する必要がありますか?

私はMinGW-W64をにインストールしました$HOME/mingw32

i686-w64-mingw32-gcc-4.7.1-2-release-linux64_rubenvb.tar.xz.tarこれは、windows32ホスト用にlinux64ビルドシステムでクロスコンパイルされたさまざまなソフトウェアを抽出してインストールした結果です。例libpng

インストールされたツールを使用するには$HOME/mingw32/i686-w64-mingw32/binPATH環境変数に追加する必要があります。ただし、このバイナリディレクトリには次のものが含まれているため、これを行うのは気が進まない

したがって、クロスコンパイルされたパッケージをインストールするのに適切な場所は$HOME/mingw32、であると思いました。そのため、への追加$HOME/mingw32/i686-w64-mingw32/binを省略できPATHます。ただし、./configureこれらのヘッダーがにインストールされたときに、以前にインストールした他のパッケージのヘッダーを見つけることができなかったため、これは機能しませんでした$HOME/mingw32/include。それらをにインストールしたとき、スクリプト$HOME/mingw32/i686-w64-mingw32/includeによって検出されました。./configure

$HOME/mingw32/includeクロスコンパイラーに組み込みのインクルードパスとして使用するように指示するために、何か特別なことをする必要がありますか?ネイティブコンパイラに組み込まれているのと同じよう/usr/includeに、つまり。

したがって、使用する正しいプレフィックスが何であるかわかりません。誰かが正しい道ととの正確な意味を説明できます$HOME/mingw32/$HOME/mingw32/i686-w64-mingw32

0 投票する
0 に答える
1075 参照

gfortran - -static フラグが渡されると、mingw-w64 gfortran がライブラリの静的リンクに失敗するのはなぜですか?

免責事項:私は特定のコンパイルの問題にかなり深く関わっていますが、コンパイルの世界にはまったく新しいです。

背景: Windows 7、64 ビット マシンで作業しています。mingw-w64 を使用して、かなり大きな Fortran プログラムをコンパイルしようとしています。コンパイル プロセスは SCONS (同様または gnu Make から派生) によって制御されます。g95 と mingw gfortran を使用して、scons 経由でこのプログラムを正常にコンパイルしました。tdm-gcc と mingw-w64 の 'ruben' ビルドを使用しようとしましたが、結果は同じで満足のいくものではありませんでした。-static 引数をコンパイラ (gfortran.exe) に渡しています。gfortran と x86_64-w64-mingw32-gfortran の両方のコンパイル コマンドを使用してみましたが、同じ結果が得られました。

問題: プログラムの 64 ビット バージョンをコンパイルしようとすると、-static 引数を gfortran コンパイラに渡したにもかかわらず、ビルドされた実行可能ファイルを実行しようとすると、さまざまな dll (libgfortran、libgcc、 libquadmath、一般的に言えば)。これらのライブラリを作業ディレクトリにコピーすると、ビルドされたプログラムはエラーなしで実行され、期待どおりに実行されます。

事例のまとめ: mingw-w64 gfortran が -static コンパイル フラグを無視しているように見える

これを解決するために提供できる追加情報がある場合は、お知らせください。

ありがとう、JTJ

0 投票する
1 に答える
847 参照

c++ - mingw で Qt 5.0 をビルドする

Qt 5.0 を mingw64 または Visual Studio 2012 でビルドする方法はありますか?それとも次のリリースを待つ必要がありますか? 次のリンクで、 mingw64を使用して qt 5.0 をビルドする手順を試しました。 mingw64 (または Visual C++ 2012)?

0 投票する
1 に答える
1024 参照

dbus - 64 ビット Windows で DBus をコンパイルする

わかりました、愚かな Windows プラットフォームで Qt5 をコンパイルするのは、私にとって本当に悪夢になるでしょう。最初のステップで、何時間も検索した後、非常に奇妙なエラーが発生しました。それは .gitignore が原因であることがわかりました! ソース リリースの tarball にパターン ファイルを無視する必要があるのはなぜですか? win7は名前のないファイルの作成を拒否するので、MSYSのnanoを使用して作成しました...

Qt5 を正常に構成した後、要件 (OpenSSL、ICU など) をインストールしました。

その後、64 ビット ウィンドウで DBus を動作させる方法がないことがわかりました。DBus4WinWinDBusKDE4Win、および freedesktop.org のオリジナル tarball など、さまざまなソースをコンパイルしようとしました。それらのどれも構成しません。構成スクリプトは、expat.h が見つからないことを示しています。私はすでに MSYS/mingw に expat をコンパイルしてインストールしました。KDE4Winプロジェクトのプリコンパイル済みライブラリも試しました。それらは素晴らしいですが、デバッグ dll はありません (コンパイルは -ldbus-1d が見つからないという ld.exe エラーで終了します)。デバッグバージョン用にリリースされた tarball がありますが、マニフェストが含まれています。

Qt を 64 ビット Windows で DBus サポート付きでコンパイルすることに成功したことがありますか? どのように?

0 投票する
0 に答える
88 参照

dll - .sym ファイルから .dll を生成しますか?

C/C++ コードから MinGW でコンパイルされた .a アーカイブがあります。また、多くの .sym ファイルにシンボルをエクスポートしています。次に、それらの組み合わせから .dll ファイルを生成する必要があります。MSYS/MinGW w64 をインストールしました

0 投票する
1 に答える
4207 参照

windows - 既存の rsync を Windows に移植したい

現在、G-Rsyncとして利用可能なウィンドウ用のrsyncがあることを知っています。それはこれです:- http://sourceforge.net/projects/grsync-win/

しかし、私がやりたいことは、ここから既存のrsyncコードを利用できるようにすることです:- https://rsync.samba.org/download.html Windowsで実行します。

私はチェックしました:- https://stackoverflow.com/questions/528298/rsync-for-windows しかし、それは私が望むものではありません。また、https://github.com/MatthewSteeples/rsync.net .net への rsync ポートを見つけました。

また、Windows はソケット システム コールの代わりに WinSock を使用します (そのため、Windows の rsync 全体を最初から作成することはできません)。だから、私はここでMingW-w64をチェックしました:- http://mingw-w64.sourceforge.net

既存のrsyncコードをWindowsに移植する方法が必要だと思います。また、この次のリンクは役に立ちません:- Win32 rsync ポートの技術的ハードル

この MingW-w64 が役立つかどうかはよくわかりません。このツールを使用して、既存の rsync を Windows に移植できますか。私も知りたいのですが、MingW-w64 は何に使用されますか? また、ここで何か不足している場合はお知らせください。

[編集] これらのプロジェクトを見つけました

  1. https://github.com/meeuw/rsync-mingw32 (このプロジェクトのドキュメントが見つかりません。readme.txt は rsync のものと同じです)。

  2. http://sourceforge.net/projects/mingw/files/MSYS/Extension/rsync/rsync-3.0.8-1/ (これには、MSYS-build-rsync を構成するための MSYS コンソールが必要です)。

しかし、これらのオプションが私の目的に役立つかどうかわかりませんか?

上記の 2 つのプロジェクトについて誰かコメントしてもらえますか?

前もって感謝します。