【发布时间】: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