2010-01-02 57 views
1

我想用cygwin將C++程序從Linux移植到Windows。現在我已經建立並連接好了,但是當我啓動程序時,它立即退出並出現錯誤。當我嘗試在gdb,我得到下面的「未知的目標異常」的結果:Cygwin端口不工作=>在啓動時立即退出

$ 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,它提出了對話框,上面寫着:「A問題導致程序停止正常工作Windows將關閉該程序並通知您是否有解決方案。「

任何想法,我可能做錯了什麼?

謝謝。

- 威廉

回答

2

微軟描述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來查看哪些特定功能無法找到。

1

檢查您需要執行您的應用程序庫,並將適當的dll文件複製到可執行文件的路徑。