在Visual Studio 2012上安装和使用FLTK

时间:2014-01-06 09:12:48

标签: c++ visual-studio visual-studio-2012 fltk

我的Windows 7 32位机器和我的C ++编译器是 Visual Studio 2012 所以首先我从这里下载了FLTK(http://www.stroustrup.com/Programming/FLTK/),然后我按照以下方式完成了工作想要我:

予。解压缩下载的文件并打开主文件夹fltk-l.l。在一个 Visual C ++文件夹(例如,vc2005或vcnet),打开fltk.dsw。如果被问及 更新旧项目文件,选择Yes to All。

PS:我的编译器是 vc2012 而不是 vc2005 ,并且中没有任何名为 fltk.dsw 的文件vc2005或vcnet 文件夹,所以我从vcnet中选择 fltk.sln 并安装它。安装时有些失败,但最终完成了!

  1. 从“构建”菜单中,选择“构建解决方案”。这可能需要几分钟的时间。 源代码正在编译成静态链接库,以便 您不必在任何时候重新编译FLTK源代码 一个新项目。完成此过程后,关闭Visual Studio。

  2. 从主FLTK目录中打开lib文件夹。复制(不只是 移动/拖动除README.lib之外的所有.lib文件(应该有 scven)进入C:\ Prograrn Files \ Microsoft Visual Studio \ Vc \ lib。

  3. 返回FLTK主目录并将FL文件夹复制到 C:\ Program Files \ Microsoft Visual Studio \ Vc \ include。

  4. 在Visual Studio中创建一个新项目,只需对常规过程进行一次更改: 创建一个" \ Vin32项目"而不是一个"控制台应用程序"什么时候 选择你的项目类型。一定要创建一个空的项目&#34 ;;除此以外, 一些"软件向导"会为你的项目添加很多东西 你不太可能不需要或理解。

  5. 在Visual Studio中,从主(顶部)菜单中选择“项目”,然后从中选择“项目” 下拉菜单选择“属性”。

  6. 在“属性”对话框的左侧菜单中,单击“链接器”文件夹。 这扩展了子菜单。在此子菜单中,单击“输入”。在附加 右侧的依赖关系文本字段,输入以下文本: fltkd.lib wsock32.lib comctl32.lib fltkjpegd.lib fltkimagesd.lib [以下步骤可能是必要的,因为il现在是默认值。] 在“忽略特定库”文本字段中,输入以下文本: libcd.lib

  7. [此步骤可能不必要,因为/ MDd现在是默认值。]在 左侧菜单的相同属性窗口,鸡巴C / C ++扩展不同 子菜单。单击代码生成子菜单项。在右边 菜单,将运行时库下拉列表更改为多线程 调试DLL(/ MDd)。单击“确定”关闭“属性”窗口。

  8. 我这一步我在新创建的项目中添加了一个新项目(我将该项目命名为 testv.cpp )并粘贴了这个简单的代码来测试FLTK:

    #include <FL/Fl.h>
    #include <FL/Fl_box.h>
    #include <FL/Fl_Window.h>
    
    //***************************
    
    int main() 
    {
      FI_Window window(200, 200, "Window title");
      FL_Box box(O,O,200,200, "Hey, I mean, He llo, World! ");
      window.show();
      return Fl::run();
    }
    

    运行此项目后(按F5),出现11个错误!他们在吼叫:

      

    错误1错误LNK2019:未解析的外部符号&#34; public:static int   __cdecl Fl :: run(void)&#34; (?run @ Fl @@ SAHXZ)在函数_main C:\ Users \ CS \ documents \ visual studio 2012 \ Projects \ testv \ testv \ testv.obj

    中引用      

    错误2错误LNK2019:未解析的外部符号&#34;受保护:   __thiscall Fl_Widget :: Fl_Widget(int,int,int,int,char const *)&#34; (?? 0Fl_Widget @@ IAE @HHHHPBD @ Z)在函数&#34; public中引用:   __thiscall Fl_Box :: Fl_Box(int,int,int,int,char const *)&#34; (?? 0Fl_Box @@ QAE @HHHHPBD @ Z)C:\ Users \ CS \ documents \ visual studio   2012 \项目\ testv \ testv \ testv.obj

         

    错误3错误LNK2019:未解析的外部符号&#34; public:virtual   __thiscall Fl_Widget :: ~Fl_Widget(void)&#34; (?? 1Fl_Widget @@ UAE @ XZ)在函数&#34; public:virtual __thiscall中引用   Fl_Box ::〜Fl_Box(无效)&#34;   (?? 1Fl_Box @@ UAE @ XZ)C:\ Users \ CS \ documents \ visual studio   2012 \项目\ testv \ testv \ testv.obj

         

    错误4错误LNK2001:未解析的外部符号&#34; public:virtual   void __thiscall Fl_Widget :: resize(int,int,int,int)&#34;   (?resize @ Fl_Widget @@ UAEXHHHH @ Z)C:\ Users \ CS \ documents \ visual studio   2012 \项目\ testv \ testv \ testv.obj

         

    错误5错误LNK2001:未解析的外部符号&#34; protected:virtual   void __thiscall Fl_Box :: draw(void)&#34;   (?draw @ Fl_Box @@ MAEXXZ)C:\ Users \ CS \ documents \ visual studio   2012 \项目\ testv \ testv \ testv.obj

         

    错误6错误LNK2001:未解析的外部符号&#34; public:virtual int   __thiscall Fl_Box :: handle(int)&#34; (?handle @ Fl_Box @@ UAEHH @ Z)C:\ Users \ CS \ documents \ visual studio   2012 \项目\ testv \ testv \ testv.obj

         

    错误7错误LNK2019:未解析的外部符号&#34; public:__ thishisall   Fl_Window :: Fl_Window(int,int,char const *)&#34;   (?? 0Fl_Window @@ QAE @HHPBD @ Z)在函数中引用   _main C:\ Users \ CS \ documents \ visual studio 2012 \ Projects \ testv \ testv \ testv.obj

         

    错误8错误LNK2019:未解析的外部符号&#34; public:virtual   __thiscall Fl_Window :: ~Fl_Window(void)&#34; (?? 1Fl_Window @@ UAE @ XZ)在函数_main C:\ Users \ CS \ documents \ visual studio中引用   2012 \项目\ testv \ testv \ testv.obj

         

    错误9错误LNK2019:未解析的外部符号&#34; public:virtual   void __thiscall Fl_Window :: show(void)&#34; (?显示@ Fl_Window @@ UAEXXZ)   在函数_main C:\ Users \ CS \ documents \ visual studio中引用   2012 \项目\ testv \ testv \ testv.obj

         

    错误10错误LNK2019:未解析的外部符号 WinMain @ 16   在函数_ _tmainCRTStartup C:\ Users \ CS \ documents \ visual中引用   studio 2012 \ Projects \ testv \ testv \ MSVCRTD.lib(crtexew.obj)

         

    错误11错误LNK1120:10未解决   外部C:\ Users \ CS \ documents \ visual studio   2012 \项目\ testv \调试\ testv.exe

    我认为问题与创建项目有关。从 Win32 Project 创建一个空项目后,我点击了添加新项并选择了 .cpp 类型。我不知道它是否正确。

    是否有解决问题的想法?

2 个答案:

答案 0 :(得分:1)

您收到该错误是因为您在一行中输入了所有库名称而没有分隔符。它将整个列表作为一个库。单击省略号,然后输入由换行符分隔的每个库名称。

使用ws2_32.lib

而不是wsock32.lib

答案 1 :(得分:0)

  

您正在收到该错误,因为您正在输入所有库   一行没有分隔符的名称。它将整个列表视为   一个图书馆。单击省略号,然后输入每个库名称   用换行符分隔。

     

使用ws2_32.lib

而不是wsock32.lib

只是添加。要分隔每个库,请在每个库名称​​(例如 libraryname.lib; libraryname.lib 后面加一个分号,或者只需在文本框中按Enter键转到下一个库因此,Visual Studio会将其作为下一行读取,您输入的任何内容都会将其视为库名。

示例:

  

libraryname.lib - 现在,按Enter键进入下一行,VS将识别库名。   libraryname.lib - 这是下一行和您的新库

我正在学习C ++并使用Microsoft Visual Studio 2015 ^ _ ^