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

windows下使用cmake编译mingw版本的bcg729

跨平台移植开发,需要将bcg729开源库移植到windows,找了半圈,没看到有现成的dll下载,只能自行编译,github下载链接,编译也很简单,具体如下,linux下几行命令的事情,但是windows上麻烦点,我这边需要编译mingw版本的库,需要下载cmake+mingw
在这里插入图片描述

1.下载CMake

我这边使用的cmake版本是camke3.28.3github下载链接,选择下面的下载即可,安装过程记得选择勾选添加到环境配置。
在这里插入图片描述
win+r,输入cmd,打开命令窗口,输入cmake --version,如果能够看到版本号,则说明环境OK

2.下载mingw-w64

打开winlibs官网链接,点击download,选择最新版本,具体如下,根据需要自行选择下载,我选择最新版本,下载后解压,然后将压缩包里面的bin文件夹的决对路径添加到环境变量的path里面;打开打开命令窗口,输入mingw32-make --version之后,能够看到版本,说明环境是好的;
在这里插入图片描述

3.编译bcg729

编译我使用命令行编译,不用cmake的gui窗口,cd进入bcg729的源码目录,就是有CMakeList.txt的哪个目录;直接输入以下命令:

mkdir build
cd build
cmake .. -G "MinGW Makefiles"  

进行编译,结果报错,找的是msvc的编译器去了
在这里插入图片描述
试了多种方法,硬是找不到,于是在CMakeList.txt同级目录新建了一个toolchain-mingw.cmake,添加以下内容,记得替换你自己mingw的路径

set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_C_COMPILER "C:/mingw-w64/mingw64/bin/gcc.exe")
set(CMAKE_CXX_COMPILER "C:/mingw-w64/mingw64/bin/g++.exe")

再次运行如下命令

cmake .. -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw.cmake

还是报错
在这里插入图片描述
多次测试,把CMakeList.txt中的最后一行add_subdirectory(build)屏蔽了后,就成功运行了
在这里插入图片描述
在这里插入图片描述

补充说明,默认只生成了静态库,如果想要同时生成静态库库和动态库,configure命令后面需增加 -DENABLE_STATIC=ON -DENABLE_SHARED=ON,完整命令如下:

cmake .. -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw.cmake -DENABLE_STATIC=ON -DENABLE_SHARED=ON

最后,生成的库如下:
在这里插入图片描述

http://www.lqws.cn/news/576235.html

相关文章:

  • 跨时间潜运动迁移以实现操作中的多帧预测
  • 出现滑块验证码的主要原因是什么?
  • 前端开发面试题总结-原生小程序部分
  • [特殊字符] Python 实战 | 从 Excel 提取数据 → 生成美观 Word 收货记录表格(含合并单元格 + 总计功能)
  • 力扣面试150(7/150)
  • 【MySQL】JDBC编程
  • 什么是集装箱残损识别系统?它如何提升港口效率?
  • 【AI时代速通QT】第四节:Windows下Qt Creator调试指南
  • nifi1.28.1集群部署详细记录
  • 【51单片机用数码管显示流水灯的种类是按钮控制数码管加一和流水灯】2022-6-14
  • JavaEE初阶第五期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(三)
  • vue-32(部署一个 Nuxt.js 应用程序)
  • 多线程环境下的线程安全资源与缓存池设计:ThreadSafeObject 与 CachePool 实例解析
  • 类图+案例+代码详解:软件设计模式----简单工厂方法、工厂方法、抽象工厂方法
  • 腾讯云实名资质 “待补充后提交” 解决方法
  • 蓝桥杯51单片机设计
  • 青少年编程与数学 02-022 专业应用软件简介 04 矢量图形设计软件:CorelDRAW
  • 华为云Flexus+DeepSeek征文 | Word办公软件接入华为云ModelArts Studio大模型,实现AI智能办公
  • 【Unity】MiniGame编辑器小游戏(七)贪吃蛇【Snake】
  • Rust C++ OpenCV kafka-rs实践
  • 【Wireshark】高级过滤技巧精讲
  • 【c/c++3】类和对象,vector容器,类继承和多态,systemd,stdboost
  • 【c/c++1】数据类型/指针/结构体,static/extern/makefile/文件
  • 利用deepseek学术搜索
  • HTTP中常见的Content-Type
  • [Android]ANR的线程
  • Redis Cluster Gossip 协议
  • C++高效结合主流工具:现代系统底层动力
  • 机电一体化论文写作实战指南:从创新设计到工程验证的完整路径
  • 面试复盘6.0