我正在開發一個應用程序來獲取Mac OS X 10.5或更高版本中安裝的軟件列表。該程序是使用objective-C++(c,C++,obj-c)創建的。每次運行程序時,都會崩潰。該程序創建目標c + +崩潰
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
//My part of coding
[pool drain]; // This is the crash prone place
return 0;
}
在這裏我提供項目設置的詳細信息:
文件擴展:.mm
編譯爲:客觀C++
Objc GC:不支持
庫使用:libxml2.2.dylib,Foundation Framework
目標platfom:x86_x64
發展:Mac OS X的10.6.8時,Xcode 3.2.6
應用類型:控制檯應用程序
我不知道任何其他選項需要設置編譯目標C++。任何有關這方面的幫助將不勝感激。
是的。我已經設置基地的SDK爲10.5
這裏是日誌跟蹤:
調試器已退出,狀態0 [會議於2011-10-03 22時29分25秒0530開始。] GNU gdb 6.3.50-20050815(Apple版本gdb-1515)(星期一 Jan 15 08:33:48 UTC 2011)版權2004自由軟件基金會, Inc. GDB是免費軟件,涵蓋GNU通用公共許可證, 歡迎您在 的特定條件下對其進行更改和/或分發。輸入「show copying」查看條件。對於GDB, 絕對沒有保證。請輸入「顯示保修」以瞭解詳情。 此GDB被配置爲「x86_64-apple-darwin」.tty/dev/ttys003 將程序加載到調試器中...程序已加載。運行[切換到 進程2973]正在運行...編程接收信號:「EXC_BAD_ACCESS」。 (gdb)
我還有一個問題。在C++類析構函數中釋放obj-c對象是否有效? 這樣
MyClass的:: myclasss(){myobjcinterface * myobjc = [[myobjcinterface 的alloc] INIT]; }
myclass ::〜myclass(){[myobjc release];} }
您需要將您的基礎SDK設置爲10.5。 –
你可以發佈你使用代碼收到的崩潰消息,它可以更容易地追蹤。 –