Windows 中 FLTK 2.0 中的链接错误
Posted
技术标签:
【中文标题】Windows 中 FLTK 2.0 中的链接错误【英文标题】:Linking errors in FLTK 2.0 in windows 【发布时间】:2014-09-05 06:56:36 【问题描述】:我正在使用 Qt Creator(不使用任何 Qt 库)来测试 FLTK2.0 的 Hello World 项目。但我收到如下错误:
错误: UpBox.cxx:-1: 错误:对
SelectObject@8' UpBox.cxx:-1: error: undefined reference to
SetROP2@8' 的未定义引用 UpBox.cxx:-1: 错误:对PatBlt@24' UpBox.cxx:-1: error: undefined reference to
CreatePatternBrush@4' 的未定义引用 UpBox.cxx:-1: 错误:未定义引用DeleteObject@4' :-1: error: C:\Users\mypc\Desktop\FLTK\fltk-2.0-win-bin\lib/libfltk2.a(UpBox.o): bad reloc address 0xb in section
.text$_ZN4fltk7FlatBoxD1Ev[__ZN4fltk7FlatBoxD1Ev]'
main.cpp文件如下:
#include <fltk/Window.h>
#include <fltk/Widget.h>
#include <fltk/run.h>
using namespace fltk;
int main(int argc, char **argv)
Window *window = new Window(300, 180);
window->begin();
Widget *box = new Widget(20, 40, 260, 100, "Hello, World!");
box->box(UP_BOX);
box->labelfont(HELVETICA_BOLD_ITALIC);
box->labelsize(36);
box->labeltype(SHADOW_LABEL);
window->end();
window->show(argc, argv);
return run();
hello.pro 文件:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
CONFIG+= c++11
LIBS += -L"C:\\Users\\mypc\\Desktop\\FLTK\\fltk-2.0-win-bin\\lib" -lfltk2
INCLUDEPATH += "C:\\Users\\mypc\\Desktop\\FLTK\\fltk-2.0-win-bin\\include"
DEPENDPATH += "C:\\Users\\mypc\\Desktop\\FLTK\\fltk-2.0-win-bin\\include"
为什么会出现这些错误?
n.b:FLTK 2.o MinGw 编译的二进制文件从FLTK Windows binaries下载
【问题讨论】:
你使用哪个编译器? 如果您搜索例如CreatePatternBrush
你应该很快找到this link,它告诉你需要链接哪个系统库。
我正在使用 MinGW(mingw482_32) @Sergey
【参考方案1】:
静态库 FLTK 已正确链接,但它还需要链接到 Win32 API 才能在 windows 上工作。
您还必须链接到 Gdi32.dll。
【讨论】:
我已将 win32: LIBS += -lgdi32 -lws2_32 -lOle32 添加到 hello.pro 文件中。我仍然收到如下错误:run.cxx:-1: error: undefined reference toIID_IUnknown',run.cxx:-1: error: undefined reference to
IID_IDropTarget'
是否也链接到 uuid.lib?
添加 uuid.lib 后没有链接错误。但是当我尝试运行该应用程序时,它会停止工作。 @Geoffroy
即一个弹出框说应用程序已停止工作
我运行调试器,它说“劣质停止,因为它收到了来自操作系统的信号。信号名称:SIGSEGV,信号含义:分段错误以上是关于Windows 中 FLTK 2.0 中的链接错误的主要内容,如果未能解决你的问题,请参考以下文章
我收到一个链接器错误,我不理解 VC++ 和 FLTK [关闭]
编译 Fast Light Toolkit (FLTK) 2.0 以与 fastHOG 一起使用
用于 VS2019 的 circa-2011 代码库的 FLTK 2.0 构建和演示