【问题标题】:QMake and wxWidgets (External Libraries)QMake 和 wxWidgets(外部库)
【发布时间】:2011-10-21 11:38:12
【问题描述】:

我正在尝试编译基于 wxWidgets 库的 GUI 程序。我得到很多对“某物”的未定义引用。我尝试在 QMake 的 LIBS 变量上手动添加一些库,但没有成功。如何在不对每个库进行硬编码的情况下将所有 wxWidgets 库添加到 QMake?下面是我的 .pro 文件。

# simple.pro
TARGET = sample

HEADERS += main.h simple.h
SOURCES += main.cpp simple.cpp

LIBS += -LC:/SourceCode/Libraries/wxWidgets2.8/lib/gcc_dll/wxmsw28_core_gcc.dll \
        -LC:/SourceCode/Libraries/wxWidgets2.8/lib/gcc_dll/wxmsw28_gcc.dll \
        -LC:/SourceCode/Libraries/wxWidgets2.8/lib/gcc_dll/wxmsw28_aui_gcc.dll

INCLUDEPATH += C:/SourceCode/Libraries/wxWidgets2.8/include

CONFIG += release

错误的形式是:

release/simple.o:simple.cpp:(.rdata$_ZTV6Simple[vtable for 简单]+0x320):未定义的引用 `wxFrameBase::SetStatusBar(wxStatusBar*)'

【问题讨论】:

  • 您遇到了什么错误?只是好奇,但是当您似乎可以使用 Qt 时,为什么还要使用 wxWidgets?
  • 错误消息示例:release/simple.o:simple.cpp:(.rdata$_ZTV6Simple[vtable for Simple]+0x320): undefined reference to `wxFrameBase::SetStatusBar(wxStatusBar*)'。这只是许多同类错误消息之一。
  • 顺便说一句,您不应该尝试链接 DLL,而是链接它们相应的 .lib 文件
  • 我在使用 MinGW 的 winXP SP2 上,并且有 .a 文件对应于 .dll。这样会好吗?究竟有什么区别,是否会影响无法定位的事实?
  • 我不使用 MinGW,所以我不能 100% 确定,但可能值得一试。 :) 至于区别,通过一些抽象,您可以说 .lib/.a 包含有关 DLL 中可用内容以及在 DLL 中可以找到的信息。这是链接器需要的信息,但似乎丢失了。

标签: c++ wxwidgets qmake


【解决方案1】:

首先,您需要使用 .a 文件添加到链接器。

如果您链接到共享库,则需要定义 WXUSINGDLL。

另外,你忘了

 wxbase29u.a

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 2014-03-19
    • 1970-01-01
    • 2023-02-25
    • 2015-01-09
    • 2011-06-02
    • 2014-06-26
    相关资源
    最近更新 更多