使用 cmake find_package 在包中查找

发布于 2024-11-09 12:57:38 字数 549 浏览 0 评论 0原文

GCC 4.6.0
Linux
cmake 2.8

我正在使用 cmake 生成我的 make 文件。但是,在我的 network_imp.c 文件中,我需要执行一些线程处理。所以我已经包含了头文件 #include 并且我正在使用 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

非常感谢您的任何建议,

GCC 4.6.0
Linux
cmake 2.8

I am using cmake to generate my make file. However, in my network_imp.c file I need to do some threading. So I have included the header file #include <pthread.h> and I am using the pthread_create() function

How can I tell cmake to use this header pthread.h and shared library -lpthread?

I thought about using the find_package, but I don't think I am using it correctly. This is my CMakeLists.txt file.

find_package(pthread)

add_library(network SHARED network_imp.c)

The error I get when I try and make is this:

undefined reference to pthread_create

Many thanks for any suggestions,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半边脸i 2024-11-16 12:57:38

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

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

这里是您特定问题的答案。

In general you should use target_link_libraries cmake command to link your executables with other libraries. find_package command is used to set special cmake variables, containing, for example, the actually libraries, to link with.

And for working with pthread you should use find_package(Threads).

And here is the answer to your particular question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文