我正在使用Visual Studio 2019用OpenGL制作一个简单的场景。库和包含项似乎已正确配置,因为我可以访问头文件和assimp文件夹结构。当我尝试包含任何assimp标头时,虽然出现此错误,但奇怪的是该文件位于文件夹中。从文件中删除“ .in”时,它被称为“ config.h.in”。在“ config.h”文件的第1016行中出现错误代码“ E0011”。内容如下
// ---------- All the Build/Compile-time defines ------------
/** @brief Specifies if double precision is supported inside assimp
*
* Property type: Bool. Default value: undefined.
*/
#cmakedefine ASSIMP_DOUBLE_PRECISION 1
#endif // !! AI_CONFIG_H_INC
这些是第1009至1018行,而在VS19中打开文件时,只有切换到另一个文件时,我才不会出现错误。我再次收到错误。
EDIT。我确实使用CMake和VS构建了Library和.dll文件
config.h.in文件是配置生成过程的输入文件,该过程是在Asset-Impoprter-Lib中使用的cmake-build生成期间执行的。 cmake运行将读取config.h.in文件,替换config.h .in中来自cmake的定义,并将生成的config.h文件写入include文件夹中。因此,如果要生成有效的config.h文件,则必须在运行自己的版本之前运行assimp-cmake run。
我想您只是在opengl示例中使用了一个解决方案文件。因此,您可以安装cmake,在assimp-installation的根文件夹中运行它,您将可以找到有效的config.h文件。
config.h文件包含您的assimp配置的定义,例如将使用哪种精度等等。