使用cmake find_package在包中查找

时间:2011-05-23 16:10:57

标签: c cmake

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

非常感谢任何建议,

1 个答案:

答案 0 :(得分:3)

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

要使用pthread,您应该使用find_package(Threads)

here是您特定问题的答案。