我一直在撕掉我的頭髮,試圖找出某些在Windows/Visual Studio中的braindead。我在OS X 10.6下有一個JNI庫,我想用Java可執行文件調試並在Xcode下進行調試:單步執行代碼,檢查JNI庫中的變量,設置斷點等。使用Xcode 4/OS X調試JNI代碼10.6
這是一個可用的JNI示例編譯並從命令行運行良好。如果有人可以告訴我如何在Xcode中設置,我會永遠感激。理想情況下,我希望從Xcode中從頭開始逐步執行指令,並根據需要從下面的代碼中剪切並粘貼,從而產生可在Xcode 4下調試的內容,並允許我在JNI代碼中設置斷點,檢查變量,請參閱堆棧追蹤等。
爲了表示感謝,我會將20美元寄給第一位給我的指令,如果您給我一個PayPal地址,我可以在我的最後複製這些指令。
在此先感謝!
HelloWorld.java
class HelloWorld {
public native String displayHelloWorld();
static {
System.loadLibrary("HelloWorldImp");
}
public static void main(String[] args) {
System.out.println("--> "+new HelloWorld().displayHelloWorld());
}
}
HelloWorldImp.mm
#include <stdio.h>
#include <jni.h>
#include <string>
#import <Foundation/Foundation.h>
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jstring JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString* name = @"Yo Cocoa";
std::string s = [name UTF8String];
jstring ret = env->NewStringUTF(s.c_str());
[pool drain];
return ret;
}
#ifdef __cplusplus
}
#endif
buildjni.sh
gcc -bundle -I/System/Library/Frameworks/JavaVM.framework/Headers -lstdc++ -o libHelloWorldImp.jnilib -framework Foundation HelloWorldImp.mm
由於沒有這方面的一個蹦極,我要補充的是,20 $的報價,只要我找到一個解決自己和張貼在這裏失效。 :) – membar