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

唯品会一个专做特卖的网站广告独立网站和平台网站

唯品会一个专做特卖的网站广告,独立网站和平台网站,网站建设设,哪种浏览器可以打开所有网站背景 笔者平时都是基于linux平台开发C代码,已经熟悉使用CMake这一套工具上一次开发windows应用程序还要追溯到10多年前,彼时还是使用微软的visual studio这个IDE,这个IDE确实也很强大,但也确实很笨重,当时用起来也很不…

背景

  1. 笔者平时都是基于linux平台开发C++代码,已经熟悉使用CMake这一套工具
  2. 上一次开发windows应用程序还要追溯到10多年前,彼时还是使用微软的visual studio这个IDE,这个IDE确实也很强大,但也确实很笨重,当时用起来也很不方便(貌似现在也进化了不少)
  3. 最近偶然需要开发一个windows平台的应用程序,第一个想法是在linux平台下跨平台编译,但后来出现了一些问题
  4. 此文也作为一个简单的记录,以一个简单的示例来说明:视频抽帧程序,扫描输入目录,将视频按照指定间隔抽帧,然后存储在输出目录
  5. 样例代码(完整代码,可直接编译运行):https://download.csdn.net/download/Garfield2005/90868131
  6. 在这里插入图片描述

写的比较简单,有问题请留言

开发过程

ubuntu系统下编译windows程序(使用cmake)

  1. 安装环境

需要借助mingw-64

# https://www.mingw-w64.org/getting-started/debian/
apt update
apt install g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64
# 选择合适版本的mingw(需要和其他库匹配,比如opencv的编译使用了posix,那么就需要选择使用对应的mingw)
update-alternatives --config x86_64-w64-mingw32-g++
  1. 编写CMakelist
# CMakelist.txtcmake_minimum_required(VERSION 3.14)
project(video_frame_extractor)add_compile_options(-posix)
add_link_options(-posix)# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF) # 禁用编译器扩展,确保标准兼容性# add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)# set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)
# set(INSTALL_PATH ${EXECUTABLE_OUTPUT_PATH})
set(INSTALL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin)# 添加可选参数以支持交叉编译 Windows
option(BUILD_WIN "Build for Windows (cross-compile)" OFF)
option(WIN_VERSION "Windows version" 10)# 查找标准线程库
find_package(Threads REQUIRED)if(BUILD_WIN)set(INSTALL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin/win-${WIN_VERSION})set(CMAKE_SYSTEM_NAME Windows)set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++ -lstdc++fs")set(OpenCV_ROOT_DIR "/data/opencv/OpenCV-4.9.0-MinGW64/x64/mingw")set(OpenCV_DIR "${OpenCV_ROOT_DIR}/lib")
endif()find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
message(STATUS "OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}")
# 输出 OpenCV 的完整版本号
message(STATUS "OpenCV version: ${OpenCV_VERSION}")
# 输出 OpenCV 的主版本号
message(STATUS "OpenCV major version: ${OpenCV_VERSION_MAJOR}")
# 输出 OpenCV 的次版本号
message(STATUS "OpenCV minor version: ${OpenCV_VERSION_MINOR}")
# 输出 OpenCV 的补丁版本号
message(STATUS "OpenCV patch version: ${OpenCV_VERSION_PATCH}")
set (OpenCV_VERSION_WITHOUT_DOT "${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}")# 添加可执行文件
add_executable(${PROJECT_NAME} video_extract_frames.cpp)# 链接 OpenCV 库
if(BUILD_WIN)target_link_libraries(${PROJECT_NAME}${OpenCV_LIBS}winpthreadstdc++fs)# 复制多个库文件file(COPY"${OpenCV_ROOT_DIR}/bin/libopencv_core${OpenCV_VERSION_WITHOUT_DOT}.dll""${OpenCV_ROOT_DIR}/bin/libopencv_imgcodecs${OpenCV_VERSION_WITHOUT_DOT}.dll""${OpenCV_ROOT_DIR}/bin/libopencv_imgproc${OpenCV_VERSION_WITHOUT_DOT}.dll""${OpenCV_ROOT_DIR}/bin/libopencv_video${OpenCV_VERSION_WITHOUT_DOT}.dll""${OpenCV_ROOT_DIR}/bin/libopencv_videoio${OpenCV_VERSION_WITHOUT_DOT}.dll""${OpenCV_ROOT_DIR}/bin/opencv_videoio_ffmpeg${OpenCV_VERSION_WITHOUT_DOT}_64.dll"DESTINATION "${INSTALL_PATH}")file(COPY"${CMAKE_CURRENT_SOURCE_DIR}/lib/win/libwinpthread-1.dll""${CMAKE_CURRENT_SOURCE_DIR}/lib/win/libgcc_s_seh-1.dll""${CMAKE_CURRENT_SOURCE_DIR}/lib/win/libstdc++-6.dll"DESTINATION "${INSTALL_PATH}")install(TARGETS ${PROJECT_NAME} DESTINATION ${INSTALL_PATH})
else()target_link_libraries(${PROJECT_NAME} pthread ${OpenCV_LIBS})
endif()
  1. 编译
# make_win.sh
win_version=11
dir=$(cd $(dirname $0); pwd)
rm -rf $dir/build-win-$win_version
mkdir $dir/build-win-$win_version
cd $dir/build-win-$win_versioncmake -DBUILD_WIN=ON \-DCMAKE_SYSTEM_NAME=Windows \-DWIN_VERSION=$win_version \-DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc \-DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ \..
make -j32
make install

注意事项

  1. 由于是基于migw64进行编译,所以依赖的库如opencv也需要使用同样的方法编译(具体编译方法可检索:mingw64 opencv在windows平台的编译方法,可能后续我再具体写一篇)
  2. 对于opencv,网上也有编译好的,但不见得满足具体需求,给一个参考地址:https://github.com/huihut/OpenCV-MinGW-Build
http://www.dtcms.com/wzjs/399377.html

相关文章:

  • 做微商推广有哪些好的分类信息网站香港头条新闻
  • 泉州网站页面设计公司网络营销的5种营销方式
  • 外贸建站应该怎么做怎么制作网页广告
  • 58和搜房那个网站做房产好福建网站建设制作
  • 海兴做网站如何进行推广
  • 济南网站开发wuliankj管理系统
  • 门户类网站建设大约多少钱宁波百度快照优化排名
  • 产品 网站建设北京seo方法
  • 深圳网站建设李天亮成都seo排名
  • 携车网网站开发怎么样网页制作与设计
  • 国外个人免费云服务器青岛seo博客
  • 人和动物做的电影网站互联网广告代理商
  • 山东手机网站建设软文广告500字
  • 包装设计模板网站关键词排名优化公司
  • 一个空间只能放一个网站吗web成品网站源码免费
  • 网上做效果图网站有哪些软件有哪些产品宣传方案
  • 深入网站开发和运维深圳网站建设专业乐云seo
  • 数字博物馆网站建设淘宝关键词优化推广排名
  • 网投网站怎么做seo哪里有培训
  • 本溪市做网站公司职业培训机构排名
  • 小榄网站建设推广关键词优化网站排名
  • 深圳国外网站设计免费友情链接平台
  • 网站用户注册页面怎么做北京网站优化技术
  • 沈阳网站建设索王道下拉360应用商店
  • 江门网站设计素材韶关疫情最新消息
  • 龙岩网站建设方式新乡网站优化公司推荐
  • 下载wordpress建站程序培训心得体会模板
  • 赣州网站建设精英著名的网络营销案例
  • dw和sql做网站网站设计公司建设网站
  • 网站怎么做地图导航bt兔子磁力天堂