問題タブ [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 投票する
0 に答える
740 参照

c - Excel 64 ビット C アドインのコンパイルの問題

これは、Excel 2010 64 ビット用の Excel .XLL アドインに変換したい C コードの一部です。問題は、Excel 2010 が 32 ビット アドインを実行できるかどうかではありません。このアドインから 64 ビット JVM を起動する必要があるため、コードは 64 ビットである必要があります。

Visual Studio 2012 でコンパイルすると動作します。このまったく同じコードを mingw64 でコンパイルすると、コンパイルされますが、Excel がクラッシュします (XLCALL32 は Excel 2010 SDK の 64 ビット バージョンです)。

c:\mingw\mingw64_rubenvb\bin\x86_64-w64-mingw32-gcc.exe -m64 -shared -o test.xll test.c -L . -lXLCALL32

長く苛立たしい努力を重ねた結果、Excel4の呼び出しに問題があることがわかりました。

その呼び出しをExcel12 (前述の SDK に付属する XLCALL.CPP ファイルから) に置き換え、明らかに XLOPER12 と XCHAR を使用すると、すべてが機能します。

これがなぜなのか、誰かが洞察を持っていますか?

コードは次のとおりです。

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

c++ - 非常に大きな .cpp ファイルのコンパイル

私のケースに当てはまる本当の答えのない同様の質問: CLICK
ここで質問する前に調査した質問 - CLICK

私はMinGW64非常に大きな.cppファイル(>13k行)を試してコンパイルするために使用していますが、Visual Studio 2010にもアクセスできます-誰かがそれを使用したソリューションを持っている場合は、お気軽に教えてください.
組み立て段階でエラーを特定しました -

2 人の同僚が提案したように、私は現在-Os--param ggc-min-expand=0,を使用してコンパイルを実行しています - コンパイルは現在 5 時間以上実行されています。--param ggc-min-heapsize=4096

アップデート:

一部の人々が示唆しているように、ファイルを2つのソースファイルに分割し、それらのヘッダーを作成します-ありがとう。

2 回目の更新:

ヘッダーを作成し、ファイルを 4 つの小さなファイルに分割した後でも、コンパイルはまだ完了していません (5 日 !!!)。

最後の

この問題は未解決のままでした - 投稿したすべての人からのアドバイスに従った後でも、これをコンパイルすることができませんでした.

0 投票する
2 に答える
10631 参照

wxwidgets - Windows と CodeLite 用に wxWidgets を設定するにはどうすればよいですか?

新しい設定を試しています。私は32ビットのWindows 8 Proラップトップを使用しています。MinGW-builds の GCC 4.8.1 をダウンロードしました。LLVM と CLang (トランクの SVN コピーから 3.4+) をコンパイルするために使用しました。どちらも私のPATHにあります。

MinGW/GCC 4.7.1 のコピーが付属している CodeLite 5.2 をダウンロードしました。純粋なコンソール チュートリアルのサンプルは動作しましたが、wxWidgets のサンプルは動作しません。( Quick Startです。) wxWidgets をダウンロードしてインストールしました。(常に良い最初のステップです。) MinGW-4.8.1 でビルドしました。エラー ノートを読み、WXWIN「C:\wxWidgets-2.9.5」とWXCFG「..\build\msw\gcc_mswud」に 2 つの環境変数 (最初はローカル、現在はシステム) を追加しました。(最初はWXCFG絶対パスだと思っていましたが、" %WXWIN%\lib\" に基づいています。) パスにスペースが入らないように、MinGW と LLVM のビルドを "C:\Program Files" から "C:\" に移動しました。

F7でビルドしたときの(まだ)エラー出力は次のとおりです。

ある時点で、コンパイラのステップでエラー メッセージが出力され、次のステップでそれが実際のパラメーターとして解釈されました。(stdout ではなく stderr でエラーを送信する必要がありましたか?)

アップデート

実際の作業に移った後、エラーが発生し、ダウンロードした 4.8.1 を使用する代わりに、CodeLite のダウンロードに付属の MinGW 4.7.1 を CodeLite がまだ使用していることに気付きました。おそらく、検索ディレクトリを 4.8.1 に変更したことで問題が発生したと思われます。全部消してやり直そうかな…。

0 投票する
3 に答える
1802 参照

c++ - mingw64 の boost.thread を使用した InterlockedCompareExchange への未定義の参照 (mingw32 ではありません)

私は、mingw64 とすべての関連パッケージがインストールされた、fedora 19 x86_64 コンピューターを使用しています。私は個人的な C++ プロジェクトに取り組んでいましたが、それをスレッドセーフにすることにしたので、Boost.thread 同期オブジェクトを試してみることにしました。実行するとすぐに、InterlockedCompareExchange に関連するリンカー エラーが発生し始めました。次のテスト プログラムは、私の要点を示しています。

コマンドラインは次のとおりです(非マルチスレッドバージョンがないため、-lboost_thread-mt を入れました。これは理にかなっています)。

$ x86_64-w64-mingw32-g++ -std=c++11 test.cpp -o test -I/usr/x86_64-w64-mingw32/sys-root/mingw/include -L/usr/x86_64-w64-mingw32/ sys-root/mingw/lib -lboost_thread-mt -lboost_system

/tmp/cc4Wh6PO.o:test.cpp:(.text$_ZN5boost12shared_mutex28interlocked_compare_exchangeINS0_10state_dataEEET_PS3_S3_S3_[_ZN5boost12shared_mutex28interlocked_compare_exchangeINS0_10state_dataEEET_PS3_S3_S3_]+0x2f): 未定義の参照が返される

しかし、mingw32 では魅力的にコンパイルされます。

$ i686-w64-mingw32-g++ -std=c++11 test.cpp -o test -I/usr/i686-w64-mingw32/sys-root/mingw/include -L/usr/i686-w64-mingw32/ sys-root/mingw/lib -lboost_thread-mt -lboost_system

私の質問は: 私は何か間違ったことをしているのですか、それとも mingw64 のバグですか? mingw の Windows バージョンでコンパイルできますか?

編集:実際にはそうでしたので、fedora mingw64パッケージのバグに違いありません

0 投票する
2 に答える
1254 参照

c++ - Boost + Mingw-w64 + Boost ログが機能しない

私はブーストをコンパイルし、cmake を動作させ、すべてが動作に近づいていますが、最も単純な例 (単純なログ記録) はリンカー エラーでコンパイルに失敗します。私は本当に何をすべきかわかりません。

これが私の現在のCMakeセットアップです

エラーログはこちら

Boost は、動的ライブラリを使用するようにコンパイルされています。

Boost-1.54、Mingw-w64 4.8.1 rev 5 (x64 seh posix バージョン)、および Cmake 2.8.11 を使用しています。静的リンクを試みましたが、役に立ちませんでした。