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

安卓做视频网站好西安市免费做网站

安卓做视频网站好,西安市免费做网站,高清视频网络服务器,icp备案系统1.编译多个源程序时CMakeLists文件编写 1.若源程序目录结构如下#xff1a; main.cpp中include“LCD_2inch4.h”头文件#xff0c;而LCD_2inch4.h中include其它源程序#xff0c;则CmakeLists.txt文件可为如下#xff1a; # 设置项目名称 cmake_minimum_required(VERSI…1.编译多个源程序时CMakeLists文件编写 1.若源程序目录结构如下 main.cpp中include“LCD_2inch4.h”头文件而LCD_2inch4.h中include其它源程序则CmakeLists.txt文件可为如下 # 设置项目名称 cmake_minimum_required(VERSION 3.10) # 确保CMake版本足够新 project(MyProject) set(CMAKE_SYSTEM_NAME Linux) #set(CMAKE_SYSTEM_PROCESSOR arm)set(tools /home/tao/linux/milkv-duo256/host-tools/gcc/riscv64-linux-musl-x86_64)#set(CMAKE_SYSROOT ${tools}/sysroot) set(CMAKE_C_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-gcc) set(CMAKE_CXX_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-g) set(CMAKE_AR ${tools}/bin/riscv64-unknown-linux-musl-ar) set(CMAKE_RANLIB ${tools}/bin/riscv64-unknown-linux-musl-ranlib)# 定义目录变量 set(DIR_Config ${CMAKE_SOURCE_DIR}/lib/Config) set(DIR_EPD ${CMAKE_SOURCE_DIR}/lib/LCD) set(DIR_FONTS ${CMAKE_SOURCE_DIR}/lib/Fonts) set(DIR_GUI ${CMAKE_SOURCE_DIR}/lib/GUI) set(DIR_Examples ${CMAKE_SOURCE_DIR}/examples) set(DIR_wiringx /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr) set(DIR_BIN ${CMAKE_SOURCE_DIR}/bin) #wiringx是main.cpp中include的其他头文件# 设置编译选项 set(CMAKE_CXX_STANDARD 11) # 假设您使用C (如果是C请使用CMAKE_C_STANDARD) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g -O0 -Wall) # 定义USELIB变量并基于它决定是否链接库 这部分if判断可省去 set(USELIB USE_DEV_LIB) if(${USELIB} STREQUAL USE_DEV_LIB) set(LIBS pthread m) else() set(LIBS ) endif() # 添加包含目录 即头文件所在目录 include_directories( ${DIR_Config} ${DIR_EPD} ${DIR_GUI} ${DIR_FONTS} ${DIR_Examples} ${DIR_wiringx}/include ) # 添加源文件并设置目标 有源程序的文件夹 file(GLOB_RECURSE SRC_LIST ${DIR_EPD}/*.c ${DIR_Config}/*.c ${DIR_GUI}/*.c ${DIR_Examples}/*.cpp ${DIR_FONTS}/*.c ) #for opencv main中使用了opencv不使用则可以不加 set(OpenCV_DIR /home/tao/linux/milkv-duo256/duo-examples/opencv-mobile-milkv/opencv-mobile-4.9.0-milkv-duo/lib/cmake/opencv4) find_package(OpenCV REQUIRED) #添加opencv头文件 include_directories(${OpenCV_INCLUDE_DIRS})#指定由源程序生成可执行程序main,可换为其它名字 add_executable(main ${SRC_LIST}) # 查找库文件指定搜索路径 添加第三方库时使用fnd_library命令之后 arget_link_libraries命令添加库 find_library(MY_LIB NAMES wiringx PATHS /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr/lib NO_DEFAULT_PATH) # 如果USELIB是USE_DEV_LIB则链接pthread和m库 if(${USELIB} STREQUAL USE_DEV_LIB) target_link_libraries(main ${LIBS} ${MY_LIB} ${OpenCV_LIBS} ) endif() # 设置输出目录为DIR_BIN注意CMake默认使用build目录但可以通过设置CMAKE_ARCHIVE_OUTPUT_DIRECTORY等变量来改变 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${DIR_BIN}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${DIR_BIN}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DIR_BIN}) # 清理规则CMake不直接支持Makefile的clean目标但可以使用make clean或自定义命令 # 在CMake中通常使用cmake --build . --target clean来清理这需要在项目根目录的CMakeLists.txt中定义clean目标 # 这里为了简单起见我们不定义clean目标 # 如果需要交叉编译可以设置工具链文件或使用CMAKE_TOOLCHAIN_FILE变量 # 例如set(CMAKE_TOOLCHAIN_FILE path/to/toolchain.cmake) # 注意这需要在您的toolchain.cmake文件中定义交叉编译器的路径和其他相关设置 # 如果您使用的是C而不是C请将add_executable替换为add_executable并相应地更改变量名例如CMAKE_C_FLAGS 之后在bin目录中cmake … make命令编译 2.将一些驱动源程序生成动态库so方便调用 1.main.c每次调用LCD_2inch4.h中的函数需要一起编译这四个源程序文件夹太麻烦可将LCD的程序生成so动态链接库,CMakeLists.txt如下 # 设置项目名称 cmake_minimum_required(VERSION 3.10) # 确保CMake版本足够新 project(MyProject) set(CMAKE_SYSTEM_NAME Linux) #指定编译器 set(tools /home/tao/linux/milkv-duo256/host-tools/gcc/riscv64-linux-musl-x86_64)set(CMAKE_C_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-gcc) set(CMAKE_CXX_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-g) set(CMAKE_AR ${tools}/bin/riscv64-unknown-linux-musl-ar) set(CMAKE_RANLIB ${tools}/bin/riscv64-unknown-linux-musl-ranlib)# 定义目录变量 ,wiringx是调用外部的库bin是指定生成的结果文件存放的地方 set(DIR_Config ${CMAKE_SOURCE_DIR}/lib/Config) set(DIR_EPD ${CMAKE_SOURCE_DIR}/lib/LCD) set(DIR_FONTS ${CMAKE_SOURCE_DIR}/lib/Fonts) set(DIR_GUI ${CMAKE_SOURCE_DIR}/lib/GUI) set(DIR_wiringx /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr) set(DIR_BIN ${CMAKE_SOURCE_DIR}/bin) # 设置编译选项 set(CMAKE_CXX_STANDARD 11) # 假设您使用C (如果是C请使用CMAKE_C_STANDARD) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g -O0 -Wall) set(LIBS pthread m) # 添加包含目录 include_directories( ${DIR_Config} ${DIR_EPD} ${DIR_GUI} ${DIR_FONTS} ${DIR_wiringx}/include ) # 添加源文件并设置目标 file(GLOB_RECURSE SRC_LIST ${DIR_EPD}/*.c ${DIR_Config}/*.c ${DIR_GUI}/*.c ${DIR_FONTS}/*.c ) # 查找库文件指定搜索路径 find_library(MY_LIB NAMES wiringx PATHS /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr/lib NO_DEFAULT_PATH) #指定库名为lcd2in4,生成的文件叫做liblcd2in4.so add_library(lcd2in4 SHARED ${SRC_LIST})target_link_libraries(lcd2in4 ${LIB} ${MY_LIB}) #添加需要使用的库# 设置输出目录为DIR_BIN注意CMake默认使用build目录但可以通过设置CMAKE_ARCHIVE_OUTPUT_DIRECTORY等变量来改变 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${DIR_BIN}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${DIR_BIN}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DIR_BIN}) 在bin目录使用cmake … make即可生成库liblcd2inch4.so 把main.c中includeLCD_2inch4.h改为lcd2inch4.h新建一个lcd2inch4.h文件内容就是原来main.c调用的LCD_2inch4.h中的内容名字是否需要必须和库名字一样不清楚这里是一样的。将h文件 和so文件任意放在哪个位置只需在CMakeLists.txt中find_librarys时指定so库文件位置即可CMakeLists.txt可为下 # 设置项目名称 cmake_minimum_required(VERSION 3.10) # 确保CMake版本足够新 project(MyProject) set(CMAKE_SYSTEM_NAME Linux) #set(CMAKE_SYSTEM_PROCESSOR arm)set(tools /home/tao/linux/milkv-duo256/host-tools/gcc/riscv64-linux-musl-x86_64)#set(CMAKE_SYSROOT ${tools}/sysroot) set(CMAKE_C_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-gcc) set(CMAKE_CXX_COMPILER ${tools}/bin/riscv64-unknown-linux-musl-g) set(CMAKE_AR ${tools}/bin/riscv64-unknown-linux-musl-ar) set(CMAKE_RANLIB ${tools}/bin/riscv64-unknown-linux-musl-ranlib)# 定义目录变量 set(DIR_Examples ${CMAKE_SOURCE_DIR}/examples) set(DIR_wiringx /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr) set(DIR_BIN ${CMAKE_SOURCE_DIR}/bin) # 设置编译选项 set(CMAKE_CXX_STANDARD 11) # 假设您使用C (如果是C请使用CMAKE_C_STANDARD) set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -g -O0 -Wall) set(LIBS pthread m) # 添加包含目录 include_directories( ${DIR_Examples} ${DIR_wiringx}/include ) # 添加源文件并设置目标 file(GLOB_RECURSE SRC_LIST ${DIR_Examples}/*.cpp ) #for opencv,不使用则不添加 set(OpenCV_DIR /home/tao/linux/milkv-duo256/duo-examples/opencv-mobile-milkv/opencv-mobile-4.9.0-milkv-duo/lib/cmake/opencv4) find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS})add_executable(main ${SRC_LIST}) # 查找库文件指定搜索路径 find_library(MY_LIB NAMES wiringx PATHS /home/tao/linux/milkv-duo256/duo-examples/duo-sdk/rootfs/usr/lib NO_DEFAULT_PATH) find_library(LCD_LIB NAMES lcd2in4 PATHS ${DIR_Examples} NO_DEFAULT_PATH) target_link_libraries(main ${LIBS} ${MY_LIB} ${OpenCV_LIBS} ${LCD_LIB}) # 设置输出目录为DIR_BIN注意CMake默认使用build目录但可以通过设置CMAKE_ARCHIVE_OUTPUT_DIRECTORY等变量来改变 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${DIR_BIN}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${DIR_BIN}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${DIR_BIN}) 3.若cpp文件中include 其他头文件但其他头文件对应源程序为c程序实现的则使用extern C告诉编译器这些函数签名用c语言的函数签名。否则cpp不能识别其函数
http://www.dnsts.com.cn/news/143209.html

相关文章:

  • 安康网站开发公司价格中国菲律宾直播
  • 淘宝客网站可以备案吗贵州省城乡和建设厅网站
  • 六安做网站的公司3d游戏建模培训
  • 网站建设第一步做什么百度热门关键词排名
  • 专业网站定制价格天津设计公司联系方式
  • 做网站的价格是多少韩国外贸平台
  • 网站网页区别广告设计图片网站
  • 帮做暑假作业网站公司中英文网站建设
  • 网站怎么做关键词搜索企业网站那几点重要
  • 自助下单网站1 建设网站目的是什么
  • 网站标题乱码企业营销型网站策划书
  • 成都网站建设成功案例单招网新手学做网站pdf下载
  • 网站建设找工作企业开通网站的费用怎么做分录
  • 主机屋网站公司名字大全推荐
  • 福建省建设行业企业资质查询网站建站行业消失了吗
  • 网站建设教程 第十课 cf战队网站制作教程和源码微信模板编辑器
  • 公司网站建设系统微网站 和移动站
  • wordpress引用js廊坊seo公司
  • 企业网站建设包含哪些内容网站如何做微信支付宝支付宝支付
  • 营销型网站推广seo搜索引擎优化工资薪酬
  • 新网 主办网站已备案网络运营商远端无响应怎么解决
  • 中国建设银行官网的网站首页怎么建设一个手机网站
  • 在深圳帮人做网站网络推广软件免费
  • WordPress的站内地图夹娃娃网站如何做
  • it前端是做网站的北京网站建设网络推广公司
  • 网站的说服力建筑信息平台网
  • 建设网站怎么设置网站页面大小北京网站设计培训
  • 茶企业网站长沙学校网站建设
  • 网站后台栏目网站建设流程是这样的 里面有很
  • 如何给自己网站做外链做手机网站版面做多宽