【问题标题】:MingW: cannot find -lpthreadGC2MingW:找不到-lpthreadGC2
【发布时间】:2011-07-31 20:22:01
【问题描述】:

我得到了错误

找不到-lpthreadGC2

在构建我的程序时。奇怪的是,它肯定在那里。我使用 cmake 构建,结合 Eclipse 和 MingW。所有其他库都可以正常工作(它们的设置方式相同)。

使用 cmake,我可以使用命令 message() 发出消息。我检查了所有包含路径和库路径是否使用 message() 正确设置。我可以在 Eclipse 项目设置中确认这一点,路径已设置(包括 pthreads.h 完美运行,已找到)。 命令target_link_libraries(MyApp "libpthreadGC2.a") 也被执行(再次检查message())。

总结:所有的路径都设置好了,所有的链接都被命令到cmake。 Eclipse 知道所有路径。但是 MingW 链接器没有找到该库。我应该在哪里寻找错误的任何想法?

【问题讨论】:

  • 我假设您已经对所有内容进行了两次和三次检查,是否有错别字和拼写错误?通常,您可以使用库文件的完整路径名 (/path/to/libpthreadGC2.a) 或 CMake 目标名称(但仅适用于您正在构建的目标)作为 target_link_libraries 的参数。您是否尝试在 target_link_libraries 调用中使用 lib 的完整路径名?
  • 是的,我什至尝试直接复制粘贴目录名称。使用 cmake message() 检查每次出现和调用。我还比较了所有其他库,以防我错过了一个命令:不,一切都在那里。 lib 本身(.a 文件)位于文件夹中。我不知道我可以检查哪些其他地方。

标签: linker find pthreads cmake


【解决方案1】:

啊,刚刚发现...

cmake 命令add_executable() 必须在之后 link_directories() 调用...但我仍然想知道,为什么这仅适用于 pthreads 库而不适用于其他库...

【讨论】:

  • 也许所有其他人都在不需要在 link_directories 调用中指定的位置?如果您使用 target_link_libraries 中库的完整路径而不是使用对 link_directories 的调用,那么这应该可以正常工作。
猜你喜欢
  • 1970-01-01
  • 2019-10-27
  • 2012-02-26
  • 2017-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多