Microsoft 2010 visual c,安装FLTK

时间:2012-07-06 06:36:58

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

MSV2010C ++的FLTK问题

我正在遵循“编程 - 使用C ++的原则和实践”。

尝试让FLTK正常运行时遇到了不好的时间。我曾经为我工作过一次,然后再也没有。 我已经详细介绍了下面采取的步骤,如果有人能注意到任何奇怪的话,我会非常感激。

我主要关注以下内容: 1)链接器中的步骤>输入>额外的依赖关系有点令人困惑 2)我已经为1.1.9和1.3.0构建了两个解决方案。这些冲突可能吗? 3)至少可以说,我对这个过程的理解是基本的。

建筑实际上实现了什么?它会创造什么样的物体?如何检查这些是否正确?

系统 Windows 7(64位)(Microsoft 2010 Visual C ++)

为fltt 1.1.9尝试了步骤

1下载fltk-1.1.9-source

2 vlC2005解决方案给出了以下结果:

========== Build: 66 succeeded, 3 failed, 0 up-to-date, 1 skipped ==========

3将源文件从源文件复制到    x:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ lib

4将FL FOLDER复制到(因此添加/替换文件夹)    x:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \

5如果我尝试运行解决方案,则会失败 -

========== Build: 6 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========

6创建一个名为graphics6的新项目,作为win32项目

7应用程序设置 - Windows应用程序&空项目

8在源文件中,创建了graphics6.cpp,添加了以下代码

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

    int main()
    {
    Fl_Window window(200,200,"Window Title");
    Fl_Box box(0,0,200,200,"Hey");
    window.show();
    return Fl::run();
    }

9当我运行它时,我得到以下

  1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16  
  referenced in function ___tmainCRTStartup

10更改项目设置 - 链接器&gt;输入&gt;其他依赖项:

 "kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;
 shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(fltkd.lib
 wsock32.lib comctl32.lib fltkjpegd.lib fltkimagesd.lib)"

11当我跑步时,我明白了 -

 1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol 
_WinMain@16 referenced in function ___tmainCRTStartup

结论 1.1.9不能在MS2010VC ++下构建

让我们尝试1.3而不是-------

1下载1.3并运行解决方案\ fltk-1.3.0-source \ fltk-1.3.0 \ ide \ VisualC2010 \ fltk.sln

2构建它(我已经完成了几次,所以它给出了以下结果:

========== Build: 0 succeeded, 0 failed, 79 up-to-date, 0 skipped ==========

3如果我运行它,我会在屏幕上显示图形。到目前为止一切都很好!

4将来自源的lib文件复制到    x:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ lib

5将FL FOLDER复制到(因此添加/替换文件夹)    x:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ include \

6步骤6 - 8与上面相同,所以只加载了上一个项目。

7我跑的时候

 1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16
 referenced in function ___tmainCRTStartup
 1>C:my information \visual studio 2010\Projects\graphics6\Debug\graphics6.exe : fatal 
 error LNK1120: 1 unresolved externals 
 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

8添加忽略默认库&gt; libcd.lib

9再次使用相同的结果

很抱歉这个问题很长,但我觉得解决问题的唯一方法就是包含所有细节。

据我所见,我尽可能地遵循指示。主要问题是我无法运行1.1.9。

我在很多网站上搜索过这个问题的解决方案,但还没有找到详细的逐步编写流程的方法。

3 个答案:

答案 0 :(得分:2)

FLTK 1.3.0

好的,我终于得到了解决方案(约12小时后) -

第1部分 - 构建FLTK

  1. 下载fltk-1.3.0并解压缩。
  2. 将包含的fltk-1.3.0文件夹复制到C:\(您可以使用其他位置,但您必须更改某些命令)。
  3. 进入C:\ fltk-1.3.0 \ ide \ VisualC2010并运行fltk.sln
  4. 右键单击它并单击构建
  5. 它应该没有错误。如果有错误,我非常怀疑本指南会对您有所帮助。
  6. 一旦完成,您应该能够运行它(将打开窗口)。
  7. 第2部分 - 运行您自己的项目 假设构建正确,您现在可以按照以下步骤操作:

    1. 启动MSVC ++ 2010
    2. 文件&gt;新建&gt;项目 - 选择Win32项目并命名

         FLTK-Test3
      
    3. 然后单击向导上的下一步 应用程序类型:保留为Windows应用程序 附加选项:空项目 点击完成

    4. 右键单击解决方案资源管理器中的源文件,添加

         FLTK-Test3.cpp
      
    5. 右键单击FLTK-Test3并进入属性

      a)配置属性&gt; C / C ++&gt;命令行&gt;其他选项 - 添加

          /Ic:\fltk-1.3.0
      

      b)配置属性&gt;链接器&gt;输入&gt;附加依赖性&gt; 这是最难的部分,您需要添加

          c:\fltk-1.3.0\lib\fltkd.lib;wsock32.lib;comctl32.lib;c:\fltk-1.3.0\lib\fltkjpegd.lib;c:\fltk-1.3.0\lib\fltkimagesd.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;c:\fltk-1.3.0\lib\fltkd.lib;wsock32.lib;comctl32.lib;c:\fltk-1.3.0\lib\fltkjpegd.lib;c:\fltk-1.3.0\lib\fltkimagesd.lib;
      
    6. .lib文件末尾的'd'表示调试,所以对于最终构建,我认为你应该包含没有'd'的那些。所以..fltkjpeg.lib不是..jpegd.lib。

      如果此部分正常工作,当您添加代码的第一个#include行时,不应加下划线。如果是,那就有问题了。

      c)您可能还必须这样做(如果它没有运行)

      配置属性&gt;链接器&gt;输入&gt;忽略特定默认库&gt;

          libcd.lib
      
      1. 完成所有这些后,您应该可以添加以下完整代码 -

        #include <FL/Fl.h>
        #include <FL/Fl_Window.h>
        
        int main()
        {
         Fl_Window win(320,200);
         win.show();
         return Fl::run();
        }
        
      2. 输入上面的代码,然后运行。

        我仍然有很多错误, -

          'FLTK-Test3.exe': Loaded 'C:\Users\USER\Documents\Visual Studio 2010\Projects\FLTK-Test3\Debug\FLTK-Test3.exe', Symbols loaded.
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\ntdll.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\kernel32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\KernelBase.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.windows.common- controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\comctl32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\advapi32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\msvcrt.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\sechost.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\rpcrt4.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\sspicli.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\cryptbase.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\gdi32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\user32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\lpk.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\usp10.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\msvcr100d.dll', Symbols loaded.
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\comdlg32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\shlwapi.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\shell32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\ole32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\imm32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\msctf.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\uxtheme.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\dwmapi.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\clbcatq.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\oleaut32.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\msimtf.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Loaded 'C:\Windows\SysWOW64\version.dll', Cannot find or open the PDB file
          'FLTK-Test3.exe': Unloaded 'C:\Windows\SysWOW64\msimtf.dll'
          'FLTK-Test3.exe': Unloaded 'C:\Windows\SysWOW64\version.dll'
        

        ..但它跑了!

        希望有所帮助。

答案 1 :(得分:0)

大卫,我建议你看这个优秀的(经过这么多年它仍然摇滚)Greg Ercolano制作的视频教程:http://seriss.com/people/erco/fltk-videos/fltk-ms-vs-build.html。该视频标题为“如何开始使用Visual Studio 7.0构建FLTK ”,但我相信它也适用于VC 2010。

关于您的问题 - 我认为这只是项目的类型可能导致问题...将您的项目配置为Win32项目。虽然,FLTK应用程序也可以作为控制台应用程序...

答案 2 :(得分:0)

您收到的错误消息表明您可能已创建项目的设置不是需要的设置(Win32控制台应用程序)来运行FLTK。

以下链接应该有所帮助。

http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvc/thread/b83e4884-9dec-4d67-ab92-90d5b6c8c51c/