CMakeFiles/control_node.dir/control_node.cpp.o: in function `std::thread::thread<void (&)(), , void>(void (&)())': control_node.cpp:(.text._ZNSt6threadC2IRFvvEJEvEEOT_DpOT0_[_ZNSt6threadC5IRFvvEJEvEEOT_DpOT0_]+0x33): undefined reference to `pthread_create'
时间: 2024-04-05 16:33:39 浏览: 17
这个错误提示是由于在编译时缺少对 pthread 库的链接引用导致的。在使用 CMake 构建项目时,可以在 CMakeLists.txt 文件中添加对 pthread 库的链接。
在 CMakeLists.txt 文件中,找到相关目标的链接部分,例如:
```
target_link_libraries(control_node ${catkin_LIBRARIES})
```
在该行的末尾添加 `pthread`,使其变为:
```
target_link_libraries(control_node ${catkin_LIBRARIES} pthread)
```
然后重新运行 CMake 和编译命令,这样应该就能解决 undefined reference 错误了。
相关问题
make[2]: *** [modules/world/CMakeFiles/opencv_world.dir/build.make:1264:modules/world/CMakeFiles/cuda_compile_1.dir/__/core/src/cuda/cuda_compile_1_generated_gpu_mat_nd.cu.o] 错误 1
引用\[1\]:make\[2\]: *** \[modules/gapi/CMakeFiles/opencv_gapi.dir/build.make:869: modules/gapi/CMakeFiles/opencv_gapi.dir/src/backends/ie/giebackend.cpp.o\] Error 1 。 引用\[2\]:modules/cudev/test/CMakeFiles/opencv_test_cudev.dir/build.make:5549: recipe for target 'bin/opencv_test_cudev' failed make\[2\]: *** \[bin/opencv_test_cudev\] Error 1CMakeFiles/Makefile2:1264: recipe for target 'modules/cudev/test/CMakeFiles/opencv_test_cudev.dir/all' failedmake\[1\]: *** \[modules/cudev/test/CMakeFiles/opencv_test_cudev.dir/all\] Error 2Makefile:160: recipe for target 'all' failedmake: *** \[all\] Error 2 。 引用\[3\]:错误:make\[2\]: *** \[modules/python3/CMakeFiles/opencv_python3.dir/build.make:56: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o\] Error 1 make\[1\]: *** \[CMakeFiles/Makefile2:21149: modules/python3/CMakeFiles/opencv_python3.dir/all\] Error 2 make: *** \[Makefile:138: all\] Error 2 网上解决方案零零碎碎,几个小时了都没有解决,直到深挖了某个大佬的博客空间,发现了这个文章:树莓派交叉编译opencv3.4.1/pycharm安装opencv/实现人脸识别Demo记录 找到cv2.cpp那个文件 texteditor打开,翻到885行(可能每个人的不一样,就在这附近) 前面要加上个(char *)。 然后再编译,在这个地方停很长时间就可以通过了。 安装完成后简直热泪盈眶!!! 但愿后面再安装opencv的人能快点解决这个鬼东西。。
问题:make\[2\]: *** \[modules/world/CMakeFiles/opencv_world.dir/build.make:1264:modules/world/CMakeFiles/cuda_compile_1.dir/__/core/src/cuda/cuda_compile_1_generated_gpu_mat_nd.cu.o\] 错误 1
回答: 这个错误是在编译opencv时出现的。根据引用\[1\]、\[2\]和\[3\]的信息,这个错误可能是由于编译过程中的某些问题导致的。解决这个问题的方法可能因个人情况而异,但有人在解决类似问题时在cv2.cpp文件的885行前面添加了(char *),然后重新编译,最终成功通过了编译。你可以尝试这个方法来解决你遇到的问题。希望这个解决方案对你有帮助!
#### 引用[.reference_title]
- *1* [make[2]: *** [modules/gapi/CMakeFiles/opencv_gapi.dir/build.make:869: modules/gapi/CMakeFiles/opencv](https://blog.csdn.net/AcetylcholineACh/article/details/129970610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [安装opencv3.2.0 cmake出现 CMakeFiles/Makefile2:1264: recipe for target 'modules/cudev/test/...](https://blog.csdn.net/qq_33202928/article/details/80079485)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [树莓派安装opencv报错:make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56...](https://blog.csdn.net/qq_44357371/article/details/105966714)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
*** 没有规则可制作目标“mini2_arm/CMakeFiles/control_center.dir/build”。 停止。
这个错误通常是由于在构建过程中缺少相关的构建规则而引起的。可能的原因包括缺少CMakeLists.txt文件,或者该文件中未正确定义相关的目标规则。
为了解决这个问题,您可以按照以下步骤进行操作:
1. 确保您的项目目录中包含了正确的CMakeLists.txt文件。这个文件通常位于项目的根目录下,用于定义构建规则和目标。
2. 检查CMakeLists.txt文件中是否正确定义了与目标“mini2_arm/CMakeFiles/control_center.dir/build”相关的构建规则。您可以查找该目标的定义,并确保其正确设置了源文件、依赖项和构建规则等信息。
3. 如果您在构建过程中使用了其他库或模块,也请确保它们的构建规则正确设置并可被找到。
4. 如果以上步骤都没有解决问题,您还可以尝试清除构建缓存并重新构建项目。您可以尝试删除build目录(如果存在),然后重新执行构建命令。
如果问题仍然存在,请检查您的构建环境和依赖项配置是否正确。您还可以参考CMake文档或与相关领域的专家进行进一步的调试和解决方案。