【问题标题】:CodeBlocks - "undefined reference to symbol 'XConvertSelection' "CodeBlocks - “对符号‘XConvertSelection’的未定义引用”
【发布时间】:2015-07-28 08:29:31
【问题描述】:

尝试构建项目时出现错误:“未定义对符号 'XConvertSelection' 的引用”。我做了一个研究,发现我应该链接到libX11.so。

我确实在Compiler Settings->Linker Settings->Add 目录"/usr/lib/i386-linux-gnu/libX11.so" 下添加了代码块。但是,错误仍然存​​在。

系统:Ubuntu 14.04.1 LTS

代码::Blocks v.13.12

32 位

我在谷歌上花了几个小时,仍然找不到有效的解决方案。感谢您的帮助!

建议的解决方案链接,状态:

“在大多数情况下,解决方案归结为,为实际工具链的编译器/链接器提供适当的路径,以搜索包含的头文件、链接库。”

这正是我所做的(至少我认为我做到了)。但是,它并不能修复错误。

【问题讨论】:

  • /usr/lib/i386-linux-gnu/libX11.so 这实际上是一个目录吗?请仔细阅读该问答和给定的链接!您永远不会直接链接到 .so 文件,而是使用适当的存根库 (.a)。

标签: c++ linker codeblocks


【解决方案1】:

“我确实在 Compiler Settings->Linker Settings->Add 目录下添加了 CodeBlocks "/usr/lib/i386-linux-gnu/libX11.so"。但是,错误仍然存​​在。”

/usr/lib/i386-linux-gnu/libX11.so 不是目录。您想指定到 -L/usr/lib/i386-linux-gnu 的链接库路径,并使用 -lX11 选项链接到 X11。

要为链接器添加搜索路径,请使用 Search Directories 选项卡:

【讨论】:

  • 谢谢!我将 -lX11 选项放在“其他链接器选项”下。我在哪里指定链接库路径?如果我在“链接库”下浏览,我会被要求输入 (*.a, *.so, *.lib, *.dylib, *.bundle)
  • @NoMorePen 正如我在answer to that duplicate I've linked before 中提到的,您可以在 Search Directories->Linker 选项卡中提供它。我将在我的答案中复制该屏幕截图。
  • 非常感谢您的回答,但没有奏效,错误仍然存​​在。我检查了一切两次。还有其他建议吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-22
相关资源
最近更新 更多