我正在尝试创建自己的头文件,其中包含一个类Vector
根据一些网站的建议,为了创建头文件,我创建了两个不同的文件: -
1)collections.h(包含声明) 2)collections.cpp(包含定义)
另一个文件是main.cpp,它包含main函数,我将在其中使用collections.h
所有这些文件都在同一目录中
我遇到的麻烦是编译器显示错误
Undefined reference to Vector::Vector(int, int)
等我班上的所有功能。
我确保collections.cpp和main.cpp都有#include "collections.h"
行
如何解决上述问题?
我在ubuntu 12.04下使用gcc编译器
答案 0 :(得分:2)
首先构建目标文件:
gcc -c main.cpp -o main.o
gcc -c collections.cpp -o collections.o
然后将它们链接在一起:
gcc collections.o main.o -o main
答案 1 :(得分:1)
您需要构建两个源文件并将它们链接在一起。
在Linux命令行中,您可以通过将两个源文件都提供给gcc
来最简单地执行此操作:
$ g++ -Wall main.cpp collections.cpp -o my_program
注意:我添加了-Wall
选项以默认启用更多警告。启用更多警告始终是一个非常好的习惯,因为它们通常可以指出逻辑错误或可能存在未定义行为的地方。