1

Windows XPの下に、g ++ 4.5がインストールされた最新のcygwinがあります。コンパイラは問題なく動作していましたが、途中で壊れてしまいました (再起動して環境変数をリセットしますか?)。私は短いテストプログラム(と呼ばれるcxx.cpp)を持っています

#include<iostream>
int main(void){
    for(int i=0; i<3; i++) std::cerr<<i<<std::endl;
}

そして私は走る

$ g++ cxx.cpp   # no output, jsut exits
$ echo $?
1

それから試してみる

$ strace -ff g++-4 cxx.cpp
... lots of output ...
   18  151816 [main] g++-4 2804 build_env: env count 4, bytes 275
   37  151853 [main] g++-4 2804 build_env: envp 0x61274708, envc 47
  428  152281 [main] g++-4 2804 child_info::child_info: subproc_ready 0x6CC
 1399  153680 [main] g++-4 2804 child_info_spawn::worker: pid 2804, prog_arg /usr/lib/gcc/i686-pc-cygwin/4.5.3/cc1plus.exe, cmd line C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\cc1plus.exe -quiet -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/lib/../../include/w32api cxx.cpp -quiet -dumpbase cxx.cpp -mtune=generic -march=i686 -auxbase cxx -o /tmp/ccr4l3sS.s)
   28  153708 [main] g++-4 2804! child_info_spawn::worker: new process name \\?\C:\cygwin\lib\gcc\i686-pc-cygwin\4.5.3\cc1plus.exe
   19  153727 [main] g++-4 2804! child_info_spawn::worker: spawned windows pid 2816
   17  153744 [main] g++-4 2804! child_info::sync: n 2, waiting for subproc_ready(0x6CC) and child process(0x670)
--- Process 2816, exception C0000139 at 7C96671E
--- Process 2816, exception C0000139 at 7C96671E
 6683  160427 [main] g++-4 2804! child_info::sync: pid 2816, WFMO returned 1, exit_code 0xC0000139, res 0
  461  160888 [main] g++-4 2804! child_info::proc_retry: exit_code 0xC0000139

なるほどcc1plus、困った。child_info_spawn::worker が明らかにするものを使用して自分自身を呼び出します

$ /lib/gcc/i686-pc-cygwin/4.5.3/cc1plus.exe -quiet -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idir./../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/lib/../../includtune=generic -march=i686 -auxbase cxx -o /tmp/ccr4l3sS.s
$ echo $?
127

何がうまくいかないのかを分析する方法について何か提案はありますか? 何を確認すればよいですか?私はcygwinにかなり慣れていません。

編集:cc1plus straceの下で 実行

strace -ff /lib/gcc/i686-pc-cygwin/4.5.3/cc1plus.exe -quiet -D__CYGWIN32__ -D__CYGWIN__ -Dunix -D__unix__ -D__unix -idir./../../include/w32api -idirafter /usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/lib/../../includtune=generic -march=i686 -auxbase cxx -o /tmp/ccr4l3sS.s

「プロシージャ エントリ ポイント __gxx_personality_v0 がダイナミック リンク ライブラリ cygstdc++-6.dll に見つかりませんでした」というポップアップ ダイアログが表示されます。

エラーダイヤルのスクリーンショット

4

1 に答える 1

1

with の問題は、以前のwithcygstdc++-6.dllの手動インストールが問題だったと思います。http://gcc.gnu.org/faq.html#multipleによると、2 つのバージョンの gcc は異なる.同じように。gcc-4.7--program-suffix=-4.7--program-suffix--prefix

http://cygwin.com/ml/cygwin/2010-03/msg00031.htmlによると、いくつかの基本パッケージを再インストールすると問題が解決するはずです。

于 2012-10-03T14:18:14.703 に答える