1

cygwin を使用して C++ プログラムを Linux から Windows に移植しようとしています。現在、ビルドとリンクは正常に行われていますが、プログラムを起動すると、すぐにエラーで終了します。gdb で試してみると、次の「不明なターゲット例外」の結果が得られます。

$ gdb ../../bin/ARCH.cygwin/release/myApp
GNU gdb 6.8.0.20080328-cvs (cygwin-special)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This GDB was configured as "i686-pc-cygwin"...
(no debugging symbols found)
(gdb) run
Starting program: bin/ARCH.cygwin/release/myApp.exe
[New thread 1452.0x99c]
gdb: unknown target exception 0xc0000139 at 0x77149eed

Program exited with code 030000000471.
You can't do that without a process to debug.

gdb にない場合、次のようなダイアログが表示されます。

私が間違ったことをしたかもしれないアイデアはありますか?

ありがとう。

-ウィリアム

4

3 に答える 3

2

STATUS_ENTRYPOINT_NOT_FOUND は通常、プログラムが実行されているシステムに実装されていない関数とリンクしていることを意味します。つまり、Windows XP で関数を呼び出そうとしていますが、Windows Vista 以降でのみ実装されました。Dependency Walker を使用して、見つからない特定の関数を確認できます。

于 2010-01-03T03:02:28.853 に答える
2

Microsoft は、0xC0000139 を STATUS_ENTRYPOINT_NOT_FOUND と説明しています。これは、プログラムが適切にリンクされていないことを示しています。ビルド スクリプトを再確認して、すべての関連ファイルがコンパイルおよびリンクされていることを確認します。

ライブラリを使用している場合は、そこにリンクの問題がある可能性があります (または、何らかの DLL が不足している可能性があります)。

生成されたエラー レポートを確認することで、より多くの情報を取得できる場合があります。Microsoft がそのエラーに関連付けるエラー メッセージには、見つけられなかったエントリ ポイントが正確に含まれているはずです。

于 2010-01-02T23:51:41.770 に答える
1

アプリケーションの実行に必要なライブラリを確認し、適切な dll ファイルを実行可能ファイルのパスにコピーします。

于 2011-02-15T17:51:27.663 に答える