0

我的makefile有问题。我正在 Windows 中使用 Eclipse,我的文件结构如下所示(项目路径:D:/workspace):

Genesha    
|
|___bin          
|     |_genesha                  
|             |_main
|                  |_java
|___src                  |__Jni.class
      |_genesha                  
              |_main
                   |_jni
                        |__makefile

当我在 makefile (D:\workspace\Genesha\src\genesha\main\jni) 本地化的 cmd 中使用命令:

javah -o FileOperationsLibrary.h -jni -classpath ../../../../bin genesha.main.java.Jni 

它工作正常。但是当我使用我的makefile时,我有以下错误:

make: *** No rule to make target `genesha.main.java.Jni.class', needed by `FileOperationsLibrary.h'.  Stop.

我正在搜索很长时间的错误,现在我不知道这里出了什么问题......

编辑:我的生成文件

FileOperationsLibrary.h: genesha.main.java.Jni.class
    javah -o FileOperationsLibrary.h -jni -classpath ../../../../bin genesha.main.java.Jni

编辑 2:最后,感谢 MadScientist,我的制作文件代码是:

FileOperationsLibrary.h: ../../../../bin/genesha/main/java/Jni.class
javah -o FileOperationsLibrary.h -jni -classpath ../../../../bin genesha.main.java.Jni

非常感谢您的帮助:)

4

1 回答 1

1

该错误意味着在您的makefile中,您有一个列为先决条件的目标FileOperationsLibrary.h,例如:genesha.main.java.Jni.class

FileOperationsLibrary.h: genesha.main.java.Jni.class

该文件genesha.main.java.Jni.class不存在,因此 make 试图找到一种方法来构建它。但是,makefile 中没有定义规则来告诉它如何构建该文件,因此您会收到该错误消息。

于 2014-01-19T14:59:31.127 回答