使用 cmake find_package 在包中查找
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一般来说,您应该使用
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 usefind_package(Threads)
.And here is the answer to your particular question.