問題タブ [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.
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 を使用すると、すべてが機能します。
これがなぜなのか、誰かが洞察を持っていますか?
コードは次のとおりです。
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 日 !!!)。
最後の
この問題は未解決のままでした - 投稿したすべての人からのアドバイスに従った後でも、これをコンパイルすることができませんでした.
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 に変更したことで問題が発生したと思われます。全部消してやり直そうかな…。
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パッケージのバグに違いありません
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 を使用しています。静的リンクを試みましたが、役に立ちませんでした。