【问题标题】:Cygwin port not working => exits immediately on launchCygwin 端口不工作 => 启动时立即退出
【发布时间】:2010-01-02 23:37:43
【问题描述】:

我正在尝试使用 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 将关闭该程序并通知您是否有可用的解决方案。”

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

谢谢。

-威廉

【问题讨论】:

    标签: c++ windows linux cygwin porting


    【解决方案1】:

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

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

    您可以通过查看它生成的错误报告来获得更多信息 - the error message Microsoft associates with that error 应该准确包含它找不到的入口点。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2018-05-12
          • 2017-03-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-02
          相关资源
          最近更新 更多