【问题标题】:finding in packages using cmake find_package使用 cmake find_package 在包中查找
【发布时间】:2011-05-23 16:10:56
【问题描述】:
GCC 4.6.0
Linux
cmake 2.8

我正在使用 cmake 来生成我的 make 文件。但是,在我的network_imp.c 文件中,我需要做一些线程处理。所以我已经包含了头文件#include <pthread.h>,我正在使用pthread_create()函数

如何告诉 cmake 使用这个头文件 pthread.h 和共享库 -lpthread?

我考虑过使用 find_package,但我认为我没有正确使用它。这是我的 CMakeLists.txt 文件。

find_package(pthread)

add_library(network SHARED network_imp.c)

我尝试制作时遇到的错误是:

undefined reference to pthread_create

非常感谢您的任何建议,

【问题讨论】:

标签: c cmake


【解决方案1】:

一般来说,您应该使用target_link_libraries cmake 命令将您的可执行文件与其他库链接。 find_package 命令用于设置特殊的 cmake 变量,例如包含要链接的实际库。

对于使用pthread,您应该使用find_package(Threads)。

here 是您特定问题的答案。

【讨论】:

  • 你好贝杜因,我只是想知道我怎么知道我要找的名字。我知道我想找到 pthreads。但是我怎么知道它被称为线程?我在使用 apache 可移植运行时 API 时询问的原因。我想找到 apr 包?我尝试了 Apr 和 APR,但 cmake make 找不到它。非常感谢您提供任何进一步的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-19
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 2022-12-29
  • 1970-01-01
相关资源
最近更新 更多