代码之家  ›  专栏  ›  技术社区  ›  WilliamKF

cygwin port not working=>启动时立即退出

  •  1
  • WilliamKF  · 技术社区  · 15 年前

    我试图用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 回复  |  直到 14 年前
        1
  •  2
  •   Michael Madsen    15 年前

    Microsoft将0xC0000139描述为“找不到状态入口点”。这表明你的程序没有正确链接。仔细检查构建脚本,确保它编译并链接所有相关文件。

    如果正在使用任何库,则可能存在链接问题(或者可能缺少某种类型的dll)。

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

        2
  •  2
  •   Luke    15 年前

    status_entrypoint_not_found通常表示您链接的函数未在运行该程序的系统上实现;即您试图在Windows XP上调用某个函数,但它仅从Windows Vista开始实现。您可以使用依赖关系Walker查看找不到哪个特定函数。

        3
  •  1
  •   Dosenfutter    14 年前

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