VS中多个C++文件编译生成

由于工程的需要,需要将多个功能写入多个C++文件中,以便来分解每个功能!!这在稍微大一点的项目中都是需要实现的!但一直遇到不少问题,在剑秋的帮助下,解决了问题,下面说一下我遇到的错误!


#include <opencv2\opencv.hpp>
#include <iostream>
#include <string>
#include"svm.cpp"
#include "plate.cpp"

如上面代码,我想在svm.cpp和plate.cpp中分别实现我的俩个功能,svm中的svm函数和plate中的plate函数,这个规范特别的不好,容易引起错误!include一般只包含.h文件。我的svm.cpp和plate.cpp代码如下
#include "plate_locate.h"
using namespace std;
void svm()
{
	printf("aa\n");
}
plate中类似,,改成加入.h文件后,我include了plate.h和svm.h文件,在这俩个.h文件中声明了svm()和plate();注意加入#ifdef #endif防止重复定义!而在.cpp中,只写入实现!svm.cpp和plate.cpp直接加入到工程的源文件中,ide会一起编译,如下图:

VS中多个C++文件编译生成_第1张图片


2 第二个问题,VS2013出现无法解析的命令,,后来发现,我引用了类的成员函数但是没有实现这个函数,!这是不允许的



在这里我声明了CPlateLocate对象!默认会调用CPlateLocate构造函数,但是在我的类中CPlateLocate();只写了这句声明,没有实现,导致如下错误



在将CPlateLocate()类中的构造函数变成了CPlateLocate(){};实现之后,就成功了,至此我遇到的问题全部解决!

你可能感兴趣的:(多个c++编译)