0

我目前正在开发一个使用以下库的项目:SDL2、SDL_ttf、SDL_image、SDL_mixer 和 CHAI3D。单独使用库,代码在 VS2013 上完美运行。但是,当我尝试在同一个项目中使用这两个库时,会出现许多错误。我设法通过将它们的 include& lib 文件添加到 VC++ 目录来设置 SDL 库。我尝试添加#include "chai3d.h"到我放置在 chai3d-3.1.0\examples....\Project\c++files 下的这个项目中。返回:

致命错误 C1083:无法打开包含文件:'chai3d.h':没有这样的文件或目录

因此,我将包含“chai3d.h”文件的文件夹的路径(../chai3d/src)添加到“属性”>“配置属性”>“VC++ 目录”>“包含目录”。这会跳转到以下 2 个错误:

致命错误 C1083:无法打开包含文件:'Eigen/Eigen':没有这样的文件或目录

我在 chai3d/external/(Eigen/Eigen) 下找到了这个文件,并将它添加到包含目录中,这样就来了:

致命错误 C1083:无法打开包含文件:'GL/glew.h':没有这样的文件或目录

请注意,注释包含行或从外部文件夹添加路径可以解决 C1083,但会导致无法识别 chai3d 对象,例如 cHapticDeviceHandler. 这是我的日志的一部分:

错误 C2062:键入“浮动”意外错误 C2146

错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数

错误 C2086:“int cVector3d”:重新定义参见“cVector3d”的声明

错误 C2143:语法错误:在 '&' 之前缺少 ','

错误 C2146:语法错误:缺少“;” 在标识符“ch_computeForceSphere”之前

错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数

错误 C2086:“int cVector3d”:重新定义

错误 C2143:语法错误:在 '&' 之前缺少 ','...

我将非常感谢有关如何解决此问题的任何提示。

4

1 回答 1

0

所以我不确定同时使用两个库(SDL 和 CHAI3D)是否有用,因为将它们组合起来以提供有用的代码似乎太复杂了。但是经过一些研究,我设法找到了方法:

  1. 首先,您需要设置一个 chai3d 项目,而不仅仅是使用示例文件夹中的一个,这可以按照以下链接下的说明完成: CHAI3D:创建应用程序
  2. 然后,您需要通过在属性>配置属性>VC++ 目录>包含目录/库目录下添加它们的 include&lib 文件,以通常的方式设置您的 SDL 库。

  3. 最后在 Properties>Linker>Input>Additional Dependencies 下添加依赖项,例如在 SDL2 的情况下,您将添加以下内容:

SDL2.lib
SDL2Main.lib

尝试注意 SDL 路径以及是否需要:

 #include <SDL.h>
 or
 #include <SDL2/SDL.h>
于 2017-09-15T10:27:05.093 回答