04 install的用法
install的用法参考链接: 【CMake】cmake的install指令_cmake –install-CSDN博客 作用作用:就是把编译生成的可执行文件、静态库、动态库、头文件等拷贝到指定文件夹(${CMAKE_INSTALL_PREFIX})中 目的: 使用第三方库时,简化目录结构,install之后就可删掉源码了 自己的代码不想让别人看到源码,就把可执行文件、库、头文件install就行了 如何install1.首先得在CMakeLists中指定install的目标路径(通过${CMKAE_INSTALL_PREFIX}变量) 对于该变量的设置有多种方式: 在CMakeLists.txt中,通过set()设置 命令行中,cmake -DCMKAE_INSTALL_PREFIX=设置 2.在CMakeLists.txt中指定install规则 举个例子: 123456install(TARGETS lib_sensor lib_common lib_base my_executable ARCHIVE...
06 vcpkg用法
vcpkg用法 众所周知CMAKE只有项目构建的功能,而没有包管理的功能,因此之前要用第三方库的话,基本每次都得去github上下载,然后再写CMakeLists.txt,这属实有点麻烦…因此有必要学一下包管理工具,使得在开发时,可以更简单的在项目中加入第三方的依赖 注意:vcpkg下载的都是源码然后自行编译,不是直接下载.lib,.dll文件的!!!所以他能管理的都是那些git上的开源代码库,比如:opencv、qt、ffmpeg…而像TensorRT这样的库是不能用vcpkg来安装的,还是得自行下载安装 1.使用基本流程使用vcpkg的流程很固定,基本都一样: 1.下载并编译需要的库 1vcpkg install xxx # 会安装在vcpkg/installed目录下 2.在项目的CMakeLists.txt中加入vcpkg的TOOL Chain 1234cmake_minimum_required(VERSION 3.15)# 必须在创建工程前指定CMAKE_TOOLCHAIN_FILEset(CMAKE_TOOLCHAIN_FILE...
gdb
gdbgdb是gcc工具链中的调试器,本身是个命令行的可执行程序,以往我们用vscode、Qt Creator调试程序的时候,底层用的都是gdb工具,不过这些IDE把他的数据给可视化了 1.gdb中常见指令启动与连接 命令 说明 gdb <executable> 启动GDB并加载可执行文件 gdb -p <pid> 附加到正在运行的进程 target remote :<port> 连接远程gdbserver(常用于嵌入式调试) target remote /dev/ttyUSB0 通过串口连接目标板(如ARM开发板) 断点与观察点 命令 说明 break <function> 在函数入口设断点(如 break main) break *<address> 在内存地址设断点(如 break *0x8000) break <file:line> 在指定文件的某一行设断点(如 break driver.c:42) watch...
07 protobuf插件
protobuf插件 在使用protobuf这个序列化库的时候,我们通常需要手动调用protoc.exe这个可执行程序对我们定义的.proto文件进行编译,从而生成对应的.cc和.h文件,但是这有点麻烦,所以CMake提供了一个API便于我们编译.proto文件 1.编译原生proto文件123456789101112find_package(Protobuf REQUIRED)include_directories(${Protobuf_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR})set(PROTO_FILE helloworld.proto) protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTO_FILE} LANGUAGE cpp)add_executable(greeter_server greeter_server.cpp...
02 QMake的基本用法
QMake的基本用法QMake是和CMake类似的项目组织工具,不过比CMAKE简单不少 官方文档:https://doc.qt.io/qt-5/qmake-manual.html 本地的Qt安装目录也有,和官方文档一致 1.QMake添加源/头/UI等文件12345678910111213SOURCES += \ $$files(UserAPP/Src/*.cpp) \ $$files(UserAPP/Src/*.c) \# main.cpp \# mainwindow.cppHEADERS += \ $$files(UserAPP/Inc/*.h)# mainwindow.hINCLUDEPATH += UserAPP/Inc/FORMS += \# ...





