2011-07-31 46 views
1

我得到的错误建设我的程序时MingW平台:找不到-lpthreadGC2

找不到-lpthreadGC2

。奇怪的是,它确实存在。我使用cmake构建,与Eclipse和MingW结合使用。所有其他库工作得很好(它们的设置方式相同)。

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

摘要:所有路径都已设置,所有链接都被命令为cmake。 Eclipse知道所有的路径。但MingW链接器找不到该库。任何想法,我应该寻找错误?

+0

我想你已经双击和三重检查了拼写错误和拼写错误的所有内容吗?通常,您可以使用库路径名(/path/to/libpthreadGC2.a)或CMake目标名称(但仅限于您构建的目标)作为target_link_libraries的参数。您是否尝试在target_link_libraries调用中使用lib的完整路径名称? – DLRdave

+0

是的,我甚至试图直接复制粘贴目录名称。用cmake消息()检查每个发生和调用。如果我错过了一个命令,我还将其与所有其他库进行比较:不,它就是这里的一切。 lib本身(.a文件)位于该文件夹中。 我不知道我可以检查的其他地方。 – blubberbernd

回答

2

啊,只是发现了这件事......

CMake的命令add_executable()有的link_directories()电话后前来......但我仍然不知道,为什么这不仅是对并行线程lib和不为其他...

+0

也许所有其他人位于不需要在link_directories调用中指定的位置?如果您在target_link_libraries中使用库的完整路径,而不是使用对link_directories的调用,那么这应该是正常的。 – DLRdave