0
我想为我的类创建一个makefile,但看起来好像 makefile无法看到或找到我的类,尽管它们在相同的 文件夹中。Makefile找不到其他类(Java,Linux,Ubuntu)
它运行时,我运行javac但不是当我运行生成文件。
的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/Makefile
,Assignment/src/myrepo
(在myrepo所有类)
类是PrintIt.java
,BinarySearchTree.java
,BinaryTree.java
,Record.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
尝试“dir =/src/myrepo”。好像你缺少正斜杠。 – Naidu
看来classpath是错误的。你使用当前目录但不应该是“./src”?假设myrepo是一个包名。 – vanje
您还应该考虑使用像Maven,Gradle或Ant这样的Java特定构建工具。 Make和Java不是最好的朋友。 – vanje