gpt4 book ai didi

java - Makefile 找不到其他类(Java、Linux、Ubuntu)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:36 27 4
gpt4 key购买 nike

我正在尝试为我的类(class)创建一个 makefile,但它看起来像makefile 看不到或找不到我的类,尽管它们在同一个文件夹。

它在我运行 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/MakefileAssignment/src/myrepo(myrepo中的所有类)

类是 PrintIt.javaBinarySearchTree.javaBinaryTree.javaRecord.java(所有在我的仓库中)

错误:

/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

最佳答案

找到解决方案:

# 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

必须在编译命令中添加“-cp src/myrepo”,这是我的类路径的目录。

关于java - Makefile 找不到其他类(Java、Linux、Ubuntu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43194358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com