Cygwin端口不工作=>在发布时立即退出

时间:2010-01-02 23:37:43

标签: c++ windows linux cygwin porting

我正在尝试使用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中时,它会引发一个对话框,内容如下:“一个问题导致程序停止正常工作.Windows将关闭程序并在解决方案可用时通知您。”

任何想法我可能做错了什么?

感谢。

- 威廉

3 个答案:

答案 0 :(得分:2)

Microsoft将0xC0000139描述为STATUS_ENTRYPOINT_NOT_FOUND。这表明您的程序没有正确链接。仔细检查您的构建脚本,确保它编译并链接所有相关文件。

如果您使用的是任何库,那么您可能会遇到链接问题(或者您可能缺少某种类型的DLL)。

您可以通过查看已生成的错误报告来获取更多信息 - the error message Microsoft associates with that error应该包含它无法找到的输入点。

答案 1 :(得分:2)

STATUS_ENTRYPOINT_NOT_FOUND通常表示您正在链接一个未在运行该程序的系统上实现的功能;即你试图在Windows XP上调用一个函数,但它只是从Windows Vista开始实现。您可以使用Dependency Walker查看无法找到哪些特定功能。

答案 2 :(得分:1)

检查执行应用程序所需的库,并将相应的dll文件复制到可执行文件的路径中。