首页 > 系统相关 >【KAWAKO】在windows上用CMake和MinGW编译c++工程

【KAWAKO】在windows上用CMake和MinGW编译c++工程

时间:2023-01-31 17:24:41浏览次数:60  
标签:set CMAKE DTLN windows c++ CXX MinGW CMake DIR

目录

安装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

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

标签:set,CMAKE,DTLN,windows,c++,CXX,MinGW,CMake,DIR
From: https://www.cnblogs.com/KAWAKO/p/17079875.html

相关文章

  • 【KAWAKO】TVM-使用c++进行推理
    目录前言修改cpp_deploy.cc文件修改DeployGraphExecutor()函数numpy与bin文件的互相转换numpy转binbin转numpy使用CMakeLists.txt进行编译运行前言在tvm工程的apps目录下......
  • windows下安装ES显示需要jdk11
    安装ES的过程中,会发现它要求jdk11,但现在开发基本都是用jdk8. 解决方法:1、下载jdk11(不推荐)2、修改ES安装目录下bin目录下的elasticsearch-env.bat(推荐)......
  • c++
    #include<iostream>usingnamespacestd;intmain(intargc,char**argv){ inta; cin>>a; if(a==95||a==96||a==97||a==98||a==99||a==100){ cout<<"你获得了......
  • windows安装ES遇到各种问题
    刚刚在windows里安装ES,但就是一直启动不了,百度来百度去,看了各种解决方法,炸了锅就是解决不了!!!遇到的错误有:不能用jdk8,只能使用jdk11.  改了各种文件,.env.yml......
  • 小熊猫C++错误【Permission denied】与纠正
    问题很早以前,在使用VisualStudioC++时,就经常遭遇到如题所示的编译链接错误。【Permissiondenied】的意思很明确:无权限,不允许操作。什么原因导致这种错误呢?请大家结合自己......
  • C++知识点捕捉
    1.对于提高cin运行时间代码:ios::sync_with_stdio(false); cin.tie(0);//cin.tie(nullptr);减少运行时间,scanf永远的神13倍,……………………………………2、......
  • python-远程连接windows机器
    python-远程连接windows机器1.python-远程连接windows机器安装远程连接windows机器库pipinstallpywinrm在远程连接windows机器开启winrm用于远程管理查看wi......
  • windows安装openssh实现paramiko文件上传功能
    windows安装openssh实现paramiko文件上传功能1.windows安装openssh实现paramiko文件上传功能需求分析:需要从python端本地将某个文件上传至远端windows服务器的某个指定......
  • python-实现远程windows机器上传文件和远程执行命令
    python-实现远程windows机器上传文件和远程执行命令1.python-实现远程windows机器上传文件和远程执行命令编写上传测试文件#!/usr/bin/envpython3#_*_coding:ut......
  • Windows10中macOS10.14虚拟机性能优化教程
    ​​Python全栈工程师核心面试300问深入解析(2020版)----全文预览​​Windows10中采用VMware15安装安装macOS10.14教程虚拟机中masOS运行并不是完美流畅,需要进行性能......