2017-04-03 9 views
0

私のクラスのメイクファイルを作成しようとしていますが、同じ フォルダにありますが、 メークファイルは見えません。メークファイルが他のクラスを見つけられません(Java、Linux、Ubuntu)

javacを実行すると動作しますが、makefileを実行しても動作しません。

Makefileの

JAVAC=/usr/bin/javac 
dir=src/myrepo 

.SUFFIXES: .java .class 

.java.class: 

     $(JAVAC) -cp . $< 

default: $(dir)/*.class 

clean: 
     if [ -e $(dir)/*.java~ ] ; then rm $(dir)/*.java~; fi 
     mv $(dir)/*.class bin; fi 

ディレクトリはAssignment/MakefileAssignment/src/myrepo(myrepoのすべてのクラス)

クラスですPrintIt.javaBinarySearchTree.javaBinaryTree.javaRecord.java(myrepoのすべて)

エラーです

/usr/bin/javac -cp . src/myrepo/BinarySearchTree.java 
src/myrepo/BinarySearchTree.java:3: error: cannot find symbol 
public class BinarySearchTree extends BinaryTree { 
            ^
    symbol: class BinaryTree 
src/myrepo/BinarySearchTree.java:9: error: cannot find symbol 
     public void insert (Record d){ 
          ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:16: error: cannot find symbol 
     public void insert (Record d, BinaryTreeNode<Record> node){ 
          ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:16: error: cannot find symbol 
     public void insert (Record d, BinaryTreeNode<Record> node){ 
            ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:16: error: cannot find symbol 
     public void insert (Record d, BinaryTreeNode<Record> node){ 
                ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:30: error: cannot find symbol 
     public BinaryTreeNode<Record> find (Record d){ 
              ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:30: error: cannot find symbol 
     public BinaryTreeNode<Record> find (Record d){ 
      ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:30: error: cannot find symbol 
     public BinaryTreeNode<Record> find (Record d){ 
          ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:37: error: cannot find symbol 
     public BinaryTreeNode<Record> find (Record d, BinaryTreeNode<Record> node){ 
              ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:37: error: cannot find symbol 
     public BinaryTreeNode<Record> find (Record d, BinaryTreeNode<Record> node){ 
                ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:37: error: cannot find symbol 
     public BinaryTreeNode<Record> find (Record d, BinaryTreeNode<Record> node){ 
                    ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:37: error: cannot find symbol 
     public BinaryTreeNode<Record> find (Record d, BinaryTreeNode<Record> node){ 
      ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:37: error: cannot find symbol 
     public BinaryTreeNode<Record> find (Record d, BinaryTreeNode<Record> node){ 
          ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:47: error: cannot find symbol 
     public void delete (Record d){ 
          ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:51: error: cannot find symbol 
     public BinaryTreeNode<Record> delete (Record d, BinaryTreeNode<Record> node){ 
              ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:51: error: cannot find symbol 
     public BinaryTreeNode<Record> delete (Record d, BinaryTreeNode<Record> node){ 
                 ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:51: error: cannot find symbol 
     public BinaryTreeNode<Record> delete (Record d, BinaryTreeNode<Record> node){ 
                     ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:51: error: cannot find symbol 
     public BinaryTreeNode<Record> delete (Record d, BinaryTreeNode<Record> node){ 
      ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:51: error: cannot find symbol 
     public BinaryTreeNode<Record> delete (Record d, BinaryTreeNode<Record> node){ 
          ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:70: error: cannot find symbol 
     public BinaryTreeNode<Record> findMin (BinaryTreeNode<Record> node){ 
               ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:70: error: cannot find symbol 
     public BinaryTreeNode<Record> findMin (BinaryTreeNode<Record> node){ 
                  ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:70: error: cannot find symbol 
     public BinaryTreeNode<Record> findMin (BinaryTreeNode<Record> node){ 
      ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:70: error: cannot find symbol 
     public BinaryTreeNode<Record> findMin (BinaryTreeNode<Record> node){ 
          ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:77: error: cannot find symbol 
     public BinaryTreeNode<Record> removeMin (BinaryTreeNode<Record> node){ 
               ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:77: error: cannot find symbol 
     public BinaryTreeNode<Record> removeMin (BinaryTreeNode<Record> node){ 
                   ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:77: error: cannot find symbol 
     public BinaryTreeNode<Record> removeMin (BinaryTreeNode<Record> node){ 
      ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:77: error: cannot find symbol 
     public BinaryTreeNode<Record> removeMin (BinaryTreeNode<Record> node){ 
          ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:10: error: cannot find symbol 
      if (root == null) 
       ^
    symbol: variable root 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:11: error: cannot find symbol 
       root = new BinaryTreeNode<Record> (d, null, null); 
       ^
    symbol: variable root 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:11: error: cannot find symbol 
       root = new BinaryTreeNode<Record> (d, null, null); 
         ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:11: error: cannot find symbol 
       root = new BinaryTreeNode<Record> (d, null, null); 
             ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:13: error: cannot find symbol 
       insert (d, root); 
         ^
    symbol: variable root 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:19: error: cannot find symbol 
        node.left = new BinaryTreeNode<Record> (d, null, null); 
            ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:19: error: cannot find symbol 
        node.left = new BinaryTreeNode<Record> (d, null, null); 
               ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:24: error: cannot find symbol 
         node.right = new BinaryTreeNode<Record> (d, null, null); 
             ^
    symbol: class BinaryTreeNode 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:24: error: cannot find symbol 
         node.right = new BinaryTreeNode<Record> (d, null, null); 
                 ^
    symbol: class Record 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:31: error: cannot find symbol 
      if (root == null) 
       ^
    symbol: variable root 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:34: error: cannot find symbol 
       return find (d, root); 
           ^
    symbol: variable root 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:48: error: cannot find symbol 
      root = delete (d, root); 
      ^
    symbol: variable root 
    location: class BinarySearchTree 
src/myrepo/BinarySearchTree.java:48: error: cannot find symbol 
      root = delete (d, root); 
          ^
    symbol: variable root 
    location: class BinarySearchTree 
40 errors 
Makefile:12: recipe for target 'src/myrepo/*.class' failed 
make: *** [src/myrepo/*.class] Error 1 
解決策が見つかりました
+0

「dir =/src/myrepo」を試してください。スラッシュを忘れているようです。 – Naidu

+0

クラスパスが間違っているようです。カレントディレクトリを使用しますが、 "./src"ではありませんか? myrepoはパッケージ名であると仮定します。 – vanje

+0

また、Maven、Gradle、AntなどのJava固有のビルドツールを使用することを検討する必要があります。 MakeとJavaは親友ではありません。 – vanje

答えて

0

# Assignment 1 makefile 
# Hendri Vermeulen 
# 29 March 2017 

JAVAC=/usr/bin/javac 
dir=src/myrepo 

.SUFFIXES: .java .class 

.java.class: 
     $(JAVAC) -cp src/myrepo $< 

default: $(dir)/Record.class $(dir)/BinaryTree.class $(dir)/BinarySearchTree.cla 

clean: 
     if [ -e $(dir)/*.java~ ] ; then rm $(dir)/*.java~; fi 
     mv $(dir)/*.class bin; fi 

は、コンパイルコマンド、私のクラスパスのディレクトリで "SRC/myrepo -cp" を追加する必要がありました。

関連する問題