安装CMake

在网上随便找个教程照着安装就行了,不再赘述。

安装MinGW

参考这篇博客。从MinGW官网下载的安装包在安装的时候总是提示失败,从该博客作者提供的网盘直接下载安装好的MinGW文件亲测可用。

安装后需要手动将MinGW的bin文件夹添加进环境变量。然后将bin文件夹中的mingw32-make.exe拷贝一份出来重命名为make.exe,方便后续编译使用。

编写CMakeLists.txt

结构参考如下代码

cmake_minimum_required(VERSION 3.10)
project(my_dtln) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(PATH ${PROJECT_SOURCE_DIR})
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O3 -Wall -g2 -ggdb")
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall -fPIC")
SET(CMAKE_BUILD_TYPE "Release")
message(${PATH}) SET(CROSS "OFF") if(CROSS STREQUAL "ON")
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
else()
set(CMAKE_C_COMPILER gcc)
set(CMAKE_CXX_COMPILER g++)
endif() set(DTLN_DIR D:\\path\\to\\DTLN_C_cross) include_directories(${DTLN_DIR}/)
include_directories(${DTLN_DIR}/tflitedist/include)
include_directories(${DTLN_DIR}/tflitedist/include/tensorflow/lite/c) add_executable(dtln main.cpp)
add_library(libdtln STATIC DTLN.cpp)
add_library(libdtlnshared SHARED DTLN.cpp) if(CROSS STREQUAL "ON")
target_link_libraries(dtln ${DTLN_DIR}/tflitedist/libs/cross/libtensorflowlite_c.so)
else()
target_link_libraries(dtln ${DTLN_DIR}/tflitedist/libs/windows_x86_64/tensorflowlite_c.dll)
target_link_libraries(libdtlnshared ${DTLN_DIR}/tflitedist/libs/windows_x86_64/tensorflowlite_c.dll)
endif()

注:

构建静态库的时候不需要将所需的tflite动态库链接进去,我在linux上构建动态库的时候也不需要链接tflite动态库。但在windows上构建动态库的时候会报错(unreference to 一大堆东西),需要将tflite动态库链接进去才能构建。

编译一条龙

md test_build
cd test_build
cmake -G "MinGW Makefiles" .. && make -j8

从下图可以看到,可执行文件、静态库、动态库都编译成功。

【KAWAKO】在windows上用CMake和MinGW编译c++工程的更多相关文章

  1. (转)Windows上使用CMake

    CMake简介 原文:http://blog.gclxry.com/use-cmake-on-windows/ 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软 ...

  2. Qt开发笔记:OpenSSL库介绍、windows上mingw32版本的OpenSSL编译模块化

    前言   Windows上mingw32版本的openssl的编译是属于比较棘手的,OpenSSL本身不提供支持..   OpenSSL 介绍   OpenSSL是一个开放源代码的软件库包,应用程序可 ...

  3. jinkins在windows上的安装 配置C#编译

    首先jinkins在windows上的安装就不说,安装只需要下载相应安装包就可以了,后有些时候经常需要修改端口号.修改如下: 然后重启jenkins服务 首次运行界面 个人建议插件按需安装. 建立一个 ...

  4. Windows下利用CMake和VS2013编译OpenCV

    转载自:http://www.chengxulvtu.com/2014/03/19/windows_build-opencv-with-cmake-and-vs2013.html   获取OpenCV ...

  5. 在Windows上使用CMake+CMakeLists.txt生成VS项目编译DlibDotnet库

    一.下次源库 地址:https://github.com/takuya-takeuchi/DlibDotNet 二.下载CMake3以上版本 地址:https://cmake.org/download ...

  6. Qt之CMake和MinGW编译OpenCV

    这里编译的是最新版OpenCV3.4.3,编译过程比较曲折,大部分编译错误都可以查得到解决方法,也遇到了Google无果的错误,好在最后还是解决了,特此记录. 编译环境 win10-64bit Qt5 ...

  7. Windows上安装QT4后更改MinGW的路径

    在windows上安装使用MinGW的QT4时,并不会一起安装MinGW. 在安装过程中,会让你指定已经安装的MinGW的路径. 当你使用QT4时,将使用你指定的MinGW的路径下的g++来编译构建程 ...

  8. 在windows上搭建C语言开发环境——借助eclipse和MinGW

    0. 前言     [本文目的]     近期在电脑上又一次安装了MinGW,发现MinGW的安装方法和之前的方法稍有差别,全部再写了一篇博文记录一下具体的安装方法.     [本文主要内容]     ...

  9. windows上安装gcc/g++环境(MinGW,msys64等)

    1 前言 经过折腾安装gcc环境,记录一下 2 工具  MinGW安装器: 下载地址1:MinGW官网 下载地址2:SourceForge (MinGW w64) 下载地址3:win-builds-1 ...

  10. windows下使用cmake+mingw配置makefile

    前面一节说了cmake简易使用,但是实际开发中项目文件非常多,使用哪种简易方式会导致代码十分混乱,因此本文介绍一种cmake管理大型项目的demo流程. 具体步骤如下: 1.创建相关的项目目录 cmd ...

随机推荐

  1. devexpress中dockManager保存布局后恢复不正常

    在使用dockManager保存布局后进行恢复发现不正常,与中间的gridcontorl接触的都不行.gridcontorl设置的填充是fill 所以在在界面上再添加一个PanelControl控件并 ...

  2. day22 存储过程 & 游标 & 事务

    存储过程 是一种在数据库中存储复杂程序(复杂sql语句),以便外部程序调用的一种数据库对象 存储过程是为了完成特定功能的sql语句集,经编译创建并保存在数据库中,用户可以通过指定存储过程的名字并给定参 ...

  3. Python3.9.5安装

    参考教程1:https://www.cnblogs.com/xiaoyanhuo/p/16362875.html 参考教程2:https://www.cnblogs.com/feng18/p/5854 ...

  4. php+apache环境搭建

    [先安装apache] apache快速安装:https://www.cnblogs.com/brad93/p/16718104.html PHP安装教程参考:https://www.cnblogs. ...

  5. 【数据库】Postgresql/PG-编写函数实现字段对应加备注

    〇.资料链接 一.背景 构建分区表时,删除了表的字段备注信息 1.查询语句 select c.relname 表名, cast ( obj_description (relfilenode, 'pg_ ...

  6. JavaEE Day06 JDBC连接池&JDBCTemplate

    今日内容: 数据库连接池 简化操作--Spring JDBC提供的 JDBC Template(JDBC的封装) 一.数据库连接池 1.引入 之前:每一次都要获取连接.释放连接-- 现在:连接重复使用 ...

  7. L1-050 倒数第N个字符串 (15分)

    L1-050 倒数第N个字符串 (15分) 给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为 L,从 L 个 a 开始,以 1 为步长递增.例如当 L 为 3 时, ...

  8. 文件压缩和vi编辑器

    一.压缩,解压缩 1.gzip 和 bzip2 gzip和bzip都是压缩软件,比如windows里的好压和360 压缩或微软自带的等等 命令格式是:gzip或者bzip  + 0-9的压缩等级(数字 ...

  9. 错误:Required request parameter 'XXX' for method parameter type String is not present

    错误信息:Required request parameter 'XXX' for method parameter type String is not present 这种都是前端请求方式不同,后 ...

  10. Effective C++试读笔记

    Part1 习惯C++ 1. 视C++为一个语言联邦 C++非常的屌,除了开发效率和编译效率不高,其他的都非常屌 C++ 可以视为一系列的语言联邦构成的紧密结合体,分为以下四个部分 C 2.C wit ...