2013-08-16 3 views
-1

나는 BITMAPFILEHEADER가 (가) 연결되지 않았습니다?

C:\MinGW64\mingw64\bin\g++ -shared 
    -IC:\Progra~1\Java\jdk1.7.0_10\include 
    -IC:\Progra~1\Java\jdk1.7.0_10\include\win32 
    test.h -o test.dll 

좋아는 MinGW

를 사용하여 C 프로그램을 컴파일합니다. 이 코드는 컴파일되어 실행됩니다.

JNIEXPORT void JNICALL Java_Bar_doFoo (JNIEnv *env, jobject o){ 
    printf("hi!"); 
} 

출력은 hi!입니다.


이 코드는 컴파일이 잘되지만 실행되지 않습니다.

JNIEXPORT void JNICALL Java_Bar_doFoo (JNIEnv *env, jobject o){ 
    printf("hi!"); 
    BITMAPFILEHEADER bmpFileHeader; 
} 

예외는 다음과 같습니다

Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Peter\Documents\workspace\Bar\foo.dll: Can't find dependent libraries 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method) 
    at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939) 
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864) 
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854) 
    at java.lang.Runtime.loadLibrary0(Runtime.java:845) 
    at java.lang.System.loadLibrary(System.java:1084) 
    at Run.<init>(Run.java:17) 
    at Run.<clinit>(Run.java:14) 
    at Run.main(Run.java:9) 

내가 좀 더 연결해야 같아요. 어떤 아이디어? LoadLibrary("*.dll")을 사용하여이를 수행 할 수 있습니까?

답변

-1

좋아, 알겠습니다.

나는 http://www.dependencywalker.com/를 다운로드해야하고 내가 된 libstdC++

  • 필요 SAIS - 같은 디렉토리에 6.dll
  • libgcc_s_seh-1.dll을

합니다.

이제 제대로 작동합니다.

관련 문제