使用matlab coder生成了C++程序,想要将程序生成dll文件进行调用,但是在添加.h和.cpp文件时出现了如下错误:
#ifndef RT_NONFINITE_H
#define RT_NONFINITE_H
// Include Files
#include "rtwtypes.h"
#ifdef __cplusplus
extern "C" {
#endif
extern real_T rtInf;
extern real_T rtMinusInf;
extern real_T rtNaN;
extern real32_T rtInfF;
extern real32_T rtMinusInfF;
extern real32_T rtNaNF;
extern boolean_T rtIsInf(real_T value);
extern boolean_T rtIsInfF(real32_T value);
extern boolean_T rtIsNaN(real_T value);
extern boolean_T rtIsNaNF(real32_T value);
#ifdef __cplusplus
}
#endif
#endif
//
// File trailer for rt_nonfinite.h
//
// [EOF]
//
报错原因是头文件声明了某函数,但缺少函数的定义,在后面调用的时候就会报错
解决方法是把MATLAB coder生成的.c文件全部导入VS的项目中,成功解决
预编译的头文件
在 Visual Studio 中创建新项目时,名为pch.h的预编译头文件将添加到项目中。(在 Visual Studio 2017 及更早版本中,该文件称为stdafx.h。)该文件的目的是加快构建过程。任何稳定的头文件,例如标准库头文件,如,都应该包含在此处。预编译的头文件只有在它或它包含的任何文件被修改时才会被编译。如果您只对项目源代码进行更改,则构建将跳过对预编译头文件的编译。
预编译头文件的编译器选项是/Y。在项目属性页中,选项位于Configuration Properties > C/C++ > Precompiled Headers 下。您可以选择不使用预编译头文件,并且可以指定头文件名以及输出文件的名称和路径。
自定义预编译代码