【问题标题】:Using fuzzylite in Visual Studio 2010在 Visual Studio 2010 中使用模糊精简版
【发布时间】:2013-06-27 09:28:29
【问题描述】:
以前有人做过吗?我无法让它工作。
以下是我的步骤:
- 从link下载windows包
- 我可以毫无问题地运行 qfuzzylite (gui-tool)。现在我想在我的 Visual Studio + Qt 集成项目中使用 blurlite 库。
- 在 CMake GUI 中,我将 blurlite 源文件夹作为输入文件夹,并选择 Visual Studio 2010 作为编译器。
- 我能够在 CMake 中生成 Visual Studio 模糊解决方案而不会出现任何错误。
- 然后,我尝试构建 Visual Studio 解决方案,但它失败并出现一些奇怪的错误。但是,它确实会生成 blurlite-dbg.lib 文件(我需要)。
- 然后我使用这个lib 文件和fuzzylite.dll 并在VS 项目中包含头文件的路径。项目构建没有任何错误。
-
现在在我正在做的代码中
fl::Engine* engine = new fl::Engine("simple-dimmer");
这会失败,但出现以下异常:
exception text: bad allocation
exception type: class std::bad_alloc
【问题讨论】:
标签:
c++
visual-studio-2010
visual-c++
fuzzy-logic
【解决方案1】:
感谢您提供详细的步骤,但解决方案似乎有点随机(或者您说的很奇怪)。除非提供有关该错误的更多信息,否则我强烈建议不要使用这种解决方案来尝试对fuzzylite 进行任何修复。
如果您遇到问题,我强烈建议您在http://www.fuzzylite.com 的论坛中报告问题,我和其他人将很乐意为您提供帮助。
对于编译错误,fuzzylite 将警告视为错误。使用 Visual Studio 编译时(不是从控制台通过 nmake)编译时在fuzzylite 4.0 中引发的警告是警告C4702,它指的是无法访问的代码。您可以通过在文件fl/fuzzylite.h 中添加#ifdef FL_WINDOWS(以及其他#pragmas)中的以下行来解决此问题:
#pragma warning(disable:4702) //Ignore unreachable code
如果库没有正确构建,运行时肯定会发生错误。
【讨论】:
-
我已经详细说明了可能导致您的问题的原因,我非常乐意帮助您进一步逐步找出错误的原因。但是,我更喜欢在fuzzylite.com 的论坛中这样做,因为我会收到通知并意识到这些问题。
【解决方案2】:
好的,明白了:)
以下是供日后参考的步骤:
- 从link下载windows包
- 在 CMake GUI 中,我将 blurlite 源文件夹作为输入文件夹,并选择 Visual Studio 2010 作为编译器。现在,如果你想在调试模式下使用 lib勾选 FL_DEBUG 框(这是我出错的地方)
- 现在单击“生成”,它将生成 5 个项目:
- ALL_BUILD
- fl-bin
- fl-共享
- fl-静态
- 安装
- ZERO_CHECK
现在在 fl-bin 的项目属性中,共享和静态转到项目属性。在 C/C++ 中,转到预处理器 摆脱空间 FL_DATA="mm.dd.yyyy" 到 "mm.dd.yyyy"(奇怪)。
该解决方案应该可以正常构建,并且会在 lib 文件夹中生成 blurlite-dbg.dll 和 blurlite-dbg.lib。
通过添加fuzzy-dbg.lib 作为链接器输入并将dll 放在解决方案文件夹中,在您的VC 项目中使用这些文件。给出路径“path\to\fuzzylite\fuzzylite”。到包含目录。
对发布模式执行相同的过程(不要勾选 FL_DEBUG 标志)