在Visual Studio 2010中使用fuzzylite

时间:2013-06-27 09:28:30

标签: c++ visual-studio-2010 visual-c++ fuzzy-logic

以前有人这样做过吗?我无法让它发挥作用。 以下是我的步骤:

  1. link
  2. 下载Windows软件包
  3. 我可以毫无问题地运行qfuzzylite(gui-tool)。现在我想在我的Visual Studio + Qt集成项目中使用fuzzylite lib。
  4. 在CMake GUI中,我将fuzzylite源文件夹作为输入文件夹,并选择Visual Studio 2010作为编译器。
  5. 我能够在CMake中生成Visual Studio fuzzylite解决方案,没有任何错误。
  6. 然后,我尝试构建Visual Studio解决方案,但失败时出现了一些奇怪的错误。但是,它确实生成了fuzzylite-dbg.lib文件(我需要它)。
  7. 然后我使用这个lib文件和fuzzylite.dll,并在VS Project中包含Headers的路径。该项目构建没有任何错误。
  8. 现在我正在做的代码

    fl :: Engine * engine = new fl :: Engine(“simple-dimmer”);

  9. 此操作失败,但出现以下异常:

    exception text: bad allocation
    exception type: class std::bad_alloc
    

2 个答案:

答案 0 :(得分:2)

感谢您的详细步骤,但解决方案似乎有点随机(或者说你做的很奇怪)。除非提供有关错误的更多信息,否则我强烈反对使用此类解决方案来尝试修复fuzzylite。

如果您遇到问题,我强烈建议您在http://www.fuzzylite.com的论坛中报告问题,我和其他人非常乐意为您提供帮助。

对于编译错误,fuzzylite将警告视为错误。使用Visual Studio(而不是从控制台通过nmake)编译时,在fuzzylite 4.0中引发的警告,可能在以前的版本中,警告C4702,它指的是无法访问的代码。您可以通过在fl/fuzzylite.h(其他#ifdef FL_WINDOWS s)中的以下行添加文件#pragma来解决此问题:

#pragma warning(disable:4702) //Ignore unreachable code

如果库未正确构建,则在运行时期间必然会发生错误。

答案 1 :(得分:1)

好的,明白了:)

以下是未来参考的步骤:

  1. link
  2. 下载Windows软件包
  3. 在CMake GUI中,我将fuzzylite源文件夹作为输入文件夹,并选择Visual Studio 2010作为编译器。现在,如果你想在调试模式下使用lib 勾选FL_DEBUG框(这是我出错的地方)
  4. 现在点击“生成”,它将生成5个项目:
    • ALL_BUILD
    • FL-仓
    • FL-共享
    • FL-静态
    • INSTALL
    • ZERO_CHECK
  5. 现在,在fl-bin的项目属性中,共享和静态转到项目属性。在C / C ++中,转到预处理器去掉FL_DATA =“mm.dd.yyyy”中的空格到“mm.dd.yyyy”(很奇怪)。 该解决方案应该构建正常,并将在lib文件夹中生成fuzzylite-dbg.dll和fuzzylite-dbg.lib。

    通过添加fuzzy-dbg.lib作为链接器输入,将这些文件放在VC项目中,并将dll放在解决方案文件夹中。将路径“path \ to \ fuzzylite \ fuzzylite”。包含目录。

    对发布模式执行相同的过程(不要勾选FL_DEBUG标志)