【问题标题】:FL_Window missing a ;FL_Window 缺少一个;
【发布时间】:2018-08-21 02:05:16
【问题描述】:

我安装并构建并编译了 FLTK 库以供 GUI 使用,因此我可以跟随 Bjarnes 书,

我按照这个教程https://www.youtube.com/watch?v=0eSOPWQ1n6U

无论如何,我将 GL 和 FL 中的包含文件放在 2017/VC/tools/14.12.25827/include 文件夹中,而 lib 文件需要在 2017/VC/tools/14.12.25827/ 中库/x86/ 和 2017/VC/tools/14.12.25827/lib/x64 虽然我只会在开发 32 位项目时使用它

然后我将一个新的 cpp 文件添加到一个空的 windows 项目中,

我将 fltk.lib 添加到项目构建设置中链接器的附加依赖项中

这里是依赖 kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib ;odbccp32.lib;%(fltk.lib)

然后我按照指示将c++选项卡和运行时库下的代码生成设置为多线程DLL(/MD)

但我收到一个奇怪的错误

严重性代码描述项目文件行抑制状态 错误 C2146 语法错误:缺少 ';'在标识符“hi”之前 Project5 c:\users\user\source\repos\project5\project5\hey.cpp 9
严重性代码 描述 项目文件行抑制状态 错误(活动)E0065 预期为“;” Project5 c:\Users\User\source\repos\Project5\Project5\hey.cpp 9
严重性代码 描述 项目文件行抑制状态 错误 C3861 'hi': 找不到标识符 Project5 c:\users\user\source\repos\project5\project5\hey.cpp 9

#include <FL/Fl.h>
#include <FL/Fl_Window.h>


    int main(){

        FL_WINDOW hi(20, 20, "hey");

        return 0;
    }

**更新

我试过了

#include <FL/Fl.h>
#include <FL/Fl_Window.h>


int main() {

    Fl_Window wd(12, 12, "hey");

    return 0;
}

我使用了类名而不是宏,但现在又遇到了两个错误

严重性代码描述项目文件行抑制状态 函数 _main Project8 C:\Users\User\source\repos 中引用的错误 LNK2019 未解析的外部符号“public: __thiscall Fl_Window::Fl_Window(int,int,char const *)”(??0Fl_Window@@QAE@HHPBD@Z) \Project8\Project8\Source.obj 1

严重性代码描述项目文件行抑制状态 函数 _main Project8 C:\Users\User\source\repos\Project8\Project8\Source 中引用的错误 LNK2019 未解析的外部符号“public: virtual __thiscall Fl_Window::~Fl_Window(void)”(??1Fl_Window@@UAE@XZ) .obj 1

【问题讨论】:

  • 我尝试了以下 int main() { Fl_Window *window = new FL_Window(20, 20, "wont work");返回0; } 但似乎仍然给我一个错误,说它需要一个类型说明符
  • 很抱歉,它应该是 Fl_Window 而不是 FL_WINDOW,因为 c++ 区分大小写。 fltk.org/doc-1.3/basics.html
  • %(fltk.lib) 不正确。
  • 另外,从输出选项卡复制错误比从错误选项卡复制错误更好,因为错误的文本格式更好。
  • 您的环境中的 %fltk.lib% 设置为什么?

标签: c++ user-interface fltk


【解决方案1】:

drescherjm 提到依赖项的格式错误

%(fltk.lib) // 错误

我应该删除它并添加 fltk.lib

【讨论】:

    【解决方案2】:
    Fl_Window* hi = new Fl_Window(20,20,"hey")
    

    应该可以。

    (查看该视频中 4:30 可以看到的 makeWindow() 函数)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多