你编译时用到了-link参数,引入c:\jdk1.2.2\cpp\lib.obj文件。找不到这个文件报错。
你在HelloWorldImp.cpp中用到了lib.cpp中的方法了吗,或者include了lib.h
需要将lib.cpp编译成lib.obj放到该目录才行。

解决方案 »

  1.   

    十分谢谢你,我的程序是这样的:
    1.java source:
    class HelloWorld{
      public native void displayHelloWorld();
      static{
        System.loadLibrary("hello");
      }
      public static void main(String args[]){
        new HelloWorld().displayHelloWorld();
      }
    }2.HelloWorldImp.cpp
    #include <jni.h>
    #include "HelloWorld.h"
    #include <stdio.h>JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
    (JNIEnv *, jobject){
    printf("hello world!/n");
    return;
    }3.我的机器安装了vc++6,我查找了整个硬盘,都没有lib.cpp或lib.h,但有lib.exe,不知为什么会这样?
      

  2.   

    那你为什么用-link c:\jdk1.2.2\cpp\lib 这一句呢?
    直接用:
    cl -Ic:\jdk1.2.2\include -Ic:jdk1.2.2\include\win32 -Ic:\jdk1.2. 
    2\cpp -Ic:\jdk1.2.2\cpp\include  -LD HelloWorldImp.cpp -Fehello.dll 
    肯定能行。
      

  3.   

    不存在的库文件不能用 -link 参数