【问题标题】:Microsoft 2010 visual c , installing FLTKMicrosoft 2010 Visual c,安装 FLTK
【发布时间】:2012-07-06 06:36:57
【问题描述】:

MSV2010C++ 的 FLTK 问题

我正在关注“编程 - 使用 C++ 的原理和实践”。

在尝试让 FLTK 正确运行时遇到了麻烦。我为我工作过一次,然后再也没有。 我已经详细说明了下面采取的步骤,如果有人能注意到任何奇怪的事情,我将不胜感激。

我主要担心以下几点: 1) Linker > Input > Additional dependencies 中的步骤有点混乱 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 将 lib 文件从源复制到 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 更改项目设置 - 链接器 > 输入 > 附加依赖项:

 "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

结论 MS2010VC++下无法编译1.1.9

让我们改用 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 添加忽略默认库> libcd.lib

9 再次运行,结果相同

很抱歉这篇文章的长度,但我觉得澄清问题的唯一方法是包含所有细节。

据我所知,我会尽可能严格地按照说明进行操作。主要问题是我无法运行 1.1.9。

我已经在许多网站上搜索了此问题的解决方案,但还没有找到详细的分步描述过程。

【问题讨论】:

  • 我认为您在努力解决此问题时正在寻找错误的东西。 :) 我希望我有 VC2012 来设置 FLTK 并给你答案...在 Windows 上设置 FLTK 总是小菜一碟...
  • 哈哈,你这么说很有趣。我现在正在尝试使用 MinGw 进行设置但失败了 :) 我下面的解决方案适用于 1.3.0,但不适用于以前的版本。那是我的下一个目标。当我为其他人提供解决方案时会发布解决方案。
  • 很奇怪,真的,在 MinGW+SYS 上构建和使用 FLTK 只是安装 autotools...(msysDTK 包)

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


【解决方案1】:

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. 完成后,您应该可以运行它(将打开窗口)。

第 2 部分 - 运行您自己的项目 假设构建正确,您现在可以按照以下步骤操作:

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

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

  4. 在解决方案资源管理器上右键源文件,添加

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

    a) 配置属性>C/C++>命令行>附加选项 - 添加

        /Ic:\fltk-1.3.0
    

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

        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;
    

.lib 文件末尾的“d”表示调试,因此对于最终构建,我认为您应该包含没有“d”的那些。所以 ..fltkjpeg.lib 不是 ..jpegd.lib。

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

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

配置属性>链接器>输入>忽略特定的默认库>

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

    #include <FL/Fl.h>
    #include <FL/Fl_Window.h>
    
    int main()
    {
     Fl_Window win(320,200);
     win.show();
     return Fl::run();
    }
    

输入上面的代码,然后运行。

我仍然有很多错误,-

  '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.3.0 与他的头文件不兼容。我收到大量无法评论的错误。
  • 我假设您使用的是 windows 7 或 windows vista,要删除这些警告,只需运行(注意:以管理员身份运行)您的 Visual Studio
  • 你的文件名是.ccp,应该是.cpp ;)
【解决方案2】:

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

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

【讨论】:

  • 还是不行。我在第二台 PC 上安装了 MSVC++2010,两个版本都试过了。依然没有。该视频很有用,但系统差异太大,无法确定我没有做错任何事情。如果没有很好地理解流程中的每个步骤,我感觉就像我只是在黑暗中拍摄试图修复这个流程。我真正需要的是一份准确的 2010 年工作指南。感谢您的回复,非常感谢您提供的信息。我迫不及待地想结束这一切,这样我就可以重新开始编程了。我的另一个选择是完全跳过图形部分,但我认为这将是一个大错误。
  • 终于!我现在似乎取得了一些进展。链接命令行是问题之一。一旦我清楚地写下来,我会为其他人写一个完整的解决方案。
  • 好吧,我很高兴听到这个消息。抱歉,我无法为 MS VC 提供帮助 - 我很长时间没有使用它 - 我更喜欢使用 MinGW+MSYS (mingw.org) 在 Windows 上构建我的应用程序...
【解决方案3】:

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

以下链接应该会有所帮助。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多