当前位置: 首页 > news >正文

C++调试经验:Ubuntu下CMake链接常见库的方式(持续更新)

 

目录

1.  CMake链接OpenCV库

2. CMake链接VTK库

3. CMake链接Qt库

4. CMake链接PCL库

5. CMake链接Gstreamer

6. CMake链接json-cpp库

7. CMake链接yaml-cpp库

8. CMake链接breakpad库

9. CMake链接Eigen3库


1.  CMake链接OpenCV库

find_package (OpenCV 4 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
# 添加到add_executable之后
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

2. CMake链接VTK库

find_package (OpenCV 4 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
# 添加到add_executable之后
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

3. CMake链接Qt库

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
find_package(Qt5 COMPONENTS Widgets Core Gui Network REQUIRED) #大写
set(CMAKE_INCLUDE_CURRENT_DIR ON)
file(GLOB PRO_FORM_DIR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ui/*.ui)
file(GLOB PRO_RESOURCES_DIR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} resource/*.qrc)
file(GLOB_RECURSE PRO_INCLUDE_DIR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS include/*.hpp include/*.h )
file(GLOB_RECURSE PRO_SOURCES_DIR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} FOLLOW_SYMLINKS src/*.cpp)
#qt头文件moc文件resource文件处理
qt5_wrap_ui(QT_UI_HPP ${PRO_FORM_DIR})
qt5_wrap_cpp(QT_MOC_HPP ${PRO_INCLUDE_DIR})
qt5_add_resources(QT_RESOURCES_CPP ${PRO_RESOURCES_DIR})
add_executable(${PROJECT_NAME}${PRO_SOURCES_DIR}${QT_RESOURCES_CPP}${PRO_INCLUDE_DIR}${QT_MOC_HPP}${PRO_FORM_DIR}
)
target_link_libraries(${PROJECT_NAME}_nodeQt5::NetworkQt5::CoreQt5::GuiQt5::Widgets
)

4. CMake链接PCL库

set (CMAKE_CXX_STANDARD 14)  # ubuntu 20.04 需要设置c++14
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
# 添加到add_executable之后
target_link_libraries(${PROJECT_NAME} ${PCL_LIBRARIES})

5. CMake链接Gstreamer

find_package(PkgConfig REQUIRED)
pkg_check_modules(GST REQUIRED gstreamer-1.0 gstreamer-app-1.0  gstreamer-video-1.0
)
include_directories(${GST_INCLUDE_DIRS}
)
# 添加到add_executable之后
target_link_libraries(${PROJECT_NAME}${GST_LIBRARIES} 
)

6. CMake链接json-cpp库

find_package(json-cpp REQUIRED)
# 添加到add_executable之后
target_link_libraries(${PROJECT_NAME}		json-cpp
)

7. CMake链接yaml-cpp库

find_package(yaml-cpp REQUIRED)
target_link_libraries(${PROJECT_NAME}		yaml-cpp
)

8. CMake链接breakpad库

find_package(PkgConfig REQUIRED)
pkg_check_modules(BREAKPAD REQUIRED breakpad-client)
include_directories(${BREAKPAD_INCLUDE_DIRS})
# 添加到add_executable之后
target_link_libraries(${PROJECT_NAME}${BREAKPAD_LIBRARIES}pthread
)

9. CMake链接Eigen3库

find_package(Eigen3 REQUIRED)
include_directories(${EIGEN3_INCLUDE_DIRS})

http://www.lryc.cn/news/470918.html

相关文章:

  • 【HarmonyOS】应用实现APP国际化多语言切换
  • 使用pandas进行数据分析
  • 用于无监督域适应的提示分布对齐
  • Rust整合Elasticsearch
  • Linux 文件权限管理:chown、chgrp 和 chmod 的使用及权限掩码规则
  • 简单记录ios打包流程
  • 右键以vscode打开目录的时候出现找不到应用程序
  • 【Go-Taskflow:一个类似任务流的有向无环图(DAG)任务执行框架,集成了可视化和性能分析工具,旨在简化并行任务的复杂依赖管理】
  • 排查PHP服务器CPU占用率高的问题
  • 【学术会议论文投稿】“从零到一:使用IntelliJ IDEA打造你的梦幻HTML项目“
  • Win11安装基于WSL2的Ubuntu
  • 如何对pdf文件进行加密?pdf文件加密全攻略与深度解析(5个方法)
  • c++面向对象三大特性之一-----多态
  • 8.Linux按键驱动-中断下半部
  • Redis 线程控制 总结
  • Scrapy框架原理与使用流程
  • 【C语言】字符型在计算机中的存储方式
  • python:ADB通过包名打开应用
  • 机器翻译技术:AI 如何跨越语言障碍
  • 单调栈应用介绍
  • 部署前后端分离若依项目--CentOS7Docker版
  • PH47代码框架功能速查
  • UVM寄存器模型:uvm_reg_adapter
  • 总结OpenGL和pyrender安装和使用过程中的坑
  • 温湿传感器(学习笔记下)
  • 期刊论文写作之word模板
  • 雷池社区版OPEN API使用教程
  • LSTM(Long Short-Term Memory,长短期记忆网络)在高端局效果如何
  • 模组操作宝典:4种关机重启技巧,让你的设备运行无忧
  • 利用API接口实现旺店通和金蝶系统的无缝数据对接