2011-08-09 36 views
23

我試圖在Eclipse Indigo中調試C++程序。該項目使用autotools/configure(和相應的插件)作爲構建系統。「程序不是可識別的可執行文件」在Eclipse中的錯誤

成功構建後,右鍵單擊項目瀏覽器中的二進制文件,然後選擇「調試爲」。然後我使用文件瀏覽器來選擇二進制文件。點擊「調試」,然後打開一個對話框,其中只顯示「程序不是可識別的可執行文件」。

任何想法?

回答

35

我找到了答案:在Eclipse配置的二進制解析器是錯的。在Project - > Properties - > C/C++ Build - > Settings中添加正確的二進制解析器解決了他的問題。

+1

哪些是二進制解析器?我是同樣的問題;) –

+9

Whops,解決了!取消選中Elf解析器並檢查Mach-O 64解析器並進行調試!謝謝! –

+1

我看到同樣的問題,但取消選中Elf並檢查Mach-O 64並不能解決問題。窗口上的 –

3

如果你在你的項目中使用libtool,什麼樣子的二進制實際上可能是用來執行真正的二進制(存儲在.libs目錄)之前設置LD_LIBRARY_PATH之類的東西包裝腳本。這可能是導致Eclipse失敗的原因,但我不確定你應該如何解決這個問題。

似乎有有點關於Eclipse CDT在互聯網上的文檔和libtool的可能有相關信息,你需要,但:http://www.freerdp.com/wiki/doku.php?id=eclipse#debug_configuration

+1

感謝您的回答,但不涉及libtool。該文件是一個可執行文件(Mach-O可執行文件i386,我在Mac OS X上使用gcc 4.6.1)。 – Andreas

+1

freerdb鏈接已死亡。 –

+0

我有同樣的問題,並設置二進制解析器沒有解決。事實證明,我認爲可執行文件正是使用libtool的包裝腳本。所以上面提到的原因可能是正確的。我想弄清楚如何解決它。我驗證了這一點,當我手動嘗試運行gdb exe後無法從eclipse運行它 – fayyazkl

0

從OSX snow leopard開始,gcc似乎默認構建64位可執行文件。那些不會被Eclipse認可的回報。爲了解決這個錯誤,你必須明確地將你的架構設置爲i386。

輸入您的項目屬性併爲每個C++鏈接器,C++編譯器和C編譯器添加命令行選項「-arch i386」。乾淨的構建後,你應該清楚再次調試。在鏈接器選項中,請確保不要將其設置爲-Xlinker選項。

Original Source

相關問題