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

目录

安装CMake

安装MinGW

编写CMakeLists.txt

编译一条龙


安装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张图片

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

 【KAWAKO】在windows上用CMake和MinGW编译c++工程_第2张图片

你可能感兴趣的:(windows,windows,c++)