【问题标题】:wxWidgets linking problemwxWidgets链接问题
【发布时间】:2011-01-23 05:59:33
【问题描述】:

我按照此页面的说明安装了 wxWidgets-2.8.10: http://wiki.wxwidgets.org/Compiling_and_getting_started

库目录:

alex@alex-linux:/usr/local/lib$ ls | grep wx libwx_base-2.8.a libwx_base_net-2.8.a libwx_base_xml-2.8.a libwx_gtk2_adv-2.8.a libwx_gtk2_aui-2.8.a libwx_gtk2_core-2.8.a libwx_gtk2_html-2.8.a libwx_gtk2_qa-2.8.a libwx_gtk2_richtext-2.8.a libwx_gtk2_xrc-2.8.a libwxtiff-2.8.a wx

然后我创建了文件 widgetTest.cpp 并用以下代码填充它: http://www.wxwidgets.org/docs/tutorials/hworld.txt

尝试构建它,我有很多链接器错误:

alex@alex-linux:~$ cd /home/alex/Tmp alex@alex-linux:~/Tmp$ g++ `wx-config --cppflags` `wx-config --libs` widgetTest.cpp /tmp/ccnPCAw5.o:在函数“wxCreateApp()”中: widgetTest.cpp:(.text+0x2d): 未定义引用 `wxAppConsole::CheckBuildOptions(char const*, char const*)' /tmp/ccnPCAw5.o:在函数“main”中: ... widgetTest.cpp:(.text._ZN20wxThreadHelperThreadD0Ev[wxThreadHelperThread::~wxThreadHelperThread()]+0x16): 未定义对 `wxThread::~wxThread()' 的引用 collect2: ld 返回 1 个退出状态

附加信息:

alex@alex-linux:~$ wx-config --cppflags -I/usr/local/lib/wx/include/gtk2-ansi-release-static-2.8 -I/usr/local/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ alex@alex-linux:~$ wx-config --libs -L/usr/local/lib -pthread /usr/local/lib/libwx_gtk2_richtext-2.8.a /usr/local/lib/libwx_gtk2_aui-2.8.a /usr/local/lib/libwx_gtk2_xrc-2.8.a /usr/local /lib/libwx_gtk2_qa-2.8.a /usr/local/lib/libwx_gtk2_html-2.8.a /usr/local/lib/libwx_gtk2_adv-2.8.a /usr/local/lib/libwx_gtk2_core-2.8.a /usr/local/lib /libwx_base_xml-2.8.a /usr/local/lib/libwx_base_net-2.8.a /usr/local/lib/libwx_base-2.8.a -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2 -1.0 -lgdk_pixbuf-2.0 -lgio-2.0 -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lXinerama -lSM -lpng -ljpeg -lexpat -lwxtiff-2.8 -lz -ldl -lm alex@alex-linux:~$

怎么了?

【问题讨论】:

  • g++ wx-config --cppflags widgetTest.cpp wx-config --libs 成功了!如何将此解决方案应用于我的工作环境 - Eclipse CDT。我将wx-config --cppflags 添加到GCC 编译器设置中,并将wx-config --libs 添加到链接器设置中,并得到链接器错误。

标签: linux gcc linker wxwidgets


【解决方案1】:

这有帮助吗?

g++ `wx-config --cppflags` widgetTest.cpp `wx-config --libs`

有时需要将库放在源之后。

【讨论】:

  • 是的,每当您使用静态链接时都需要它(就像 OP 一样)。作为传统 Unix 链接器使用的搜索算法的直接结果,它既不特定于 wxWidgets 也不特定于 Linux。
  • 将库移到最后有帮助,命令行构建成功,谢谢!现在我回到我的工作环境:Eclipse CDT。如何在这里重现此解决方案?在编译器设置中,我有其他标志:wx-config --cppflags,在链接器设置中,我有其他标志wx-config --libs。构建结果链接器错误。
  • 供参考:在 Eclipse CDT 中,通过更改链接器命令行模式解决了问题:FLAGS 移到了末尾。
猜你喜欢
  • 2021-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-08
相关资源
最近更新 更多