makefile不起作用
Makefile is not working
我正在尝试使我的makefile正常工作,但是它给了我一些错误,我无法正常工作。
OBJS = Kmeans.o cluster.o data.o
CC = g++
DEBUG = -g
CFLAGS = -Wall -c $(DEBUG)
LFLAGS = -Wall $(DEBUG)
clustering : $(OBJS)
$(CC) $(LFLAGS) $(OBJS) -o clustering
Kmeans.o : Kmeans.h Kmeans.cpp cluster.h data.h
$(CC) $(CFLAGS) Kmeans.cpp
cluster.o : cluster.h cluster.cpp data.h
$(CC) $(CFLAGS) cluster.cpp
data.o : data.h data.cpp
$(CC) $(CFLAGS) data.cpp
clean:
rm *.o *~ clustering
文件是:
clustering.cpp -> #include "Kmeans.h"
Kmeans.cpp -> #include "Kmeans.h"
Kmeans.h -> #include "cluster.h"
cluster.cpp -> #include "cluster.h"
cluster.h -> #include "data.h"
data.cpp -> #include "data.h"
我在做什么错?
编辑:抱歉,我忘了包括错误:
Kmeans.o: In function `Kmeans::read(char*)':
Kmeans.cpp:(.text+0x53c): undefined reference to `Data::~Data()'
cluster.o: In function `Cluster::Cluster(int, int, int)':
cluster.cpp:(.text+0x45): undefined reference to `Data::~Data()'
cluster.cpp:(.text+0x80): undefined reference to `Data::~Data()'
cluster.o: In function `Cluster::Cluster()':
cluster.cpp:(.text+0xca): undefined reference to `Data::~Data()'
cluster.cpp:(.text+0x110): undefined reference to `Data::~Data()'
cluster.o: In function `Cluster::setData(int, int, int)':
cluster.cpp:(.text+0x158): undefined reference to `Data::~Data()'
collect2: ld devolvió el estado de salida 1
make: *** [clustering] Error 1
谢谢!
我编译每个文件,问题在最后一行:
g++ -c -o clustering.o clustering.cpp
g++ -c -o data.o data.cpp
g++ -c -o Kmeans.o Kmeans.cpp
g++ -c -o cluster.o cluster.cpp
g++ -o clustering clustering.o data.o Kmeans.o cluster.o <----
看来您在data.h
中有Data::~Data
声明,并且在任何地方都没有定义。
只需从标题中删除声明或添加空定义,它是虚拟驱动器。
该错误似乎不在您的makefile中,而是在您的CPP文件中。尝试手工编译它,然后使用Makefile自动化它。
可能是您忘记了在data.cpp
Data::~Data()
的定义样本Makefile应该是这样的:
#list of pseudo variables here
executable: object1.o object2.o object3.o
ld -r object1.o object2.o object3.o -o executable
object1.o : object1.cpp
$(CC) object.cpp -o object1.o
object2.o : object2.cpp
$(CC) object2.cpp -o object2.o
object3.o : object3.cpp
$(CC) object3.cpp -o object3.o
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- Makefile在Linux中工作,但在Windows下不起作用,在子目录中找不到文件
- 切换语句不起作用 c++ 和 D:\c++ dev-c\Makefile.win 目标"abc.o"的配方失败
- 非常非常基本:为什么我的makefile不起作用
- 当我尝试使用 makefile 编译我的 qt 程序时,它不起作用
- C++ Makefile g++和"std="标志似乎不起作用
- makefile不起作用
- 通过 Makefile 编译 2 个文件不起作用
- Makefile 在 mac os x Mavericks 上不起作用
- 命令行有效,Makefile 中的相同命令不起作用