四虎國產成人免費觀看_精品蜜桃av中文字幕_曰批全过程120分钟免费视频_玩弄漂亮少妇高潮动态图_成人激情一区二区电影_最新亚洲中文按摩精油视頻_午夜福利理论片_免费人成年激情视频在线观看_五月天丁香社区_又大又粗的久久久精品少妇AV

Windows下使用MSYS2開(kāi)發(fā)和SDK教程

標(biāo)簽: SDK

探路者 2023-03-21 17:06:55

首先是一些相關(guān)資源的分享:

1. Windows下MSYS2 開(kāi)發(fā)環(huán)境的地址:打包好的MSYS2的百度云地址

2. SDK相關(guān)開(kāi)發(fā)教程和視頻: 開(kāi)發(fā)示例文檔 , 開(kāi)發(fā)教程視頻


下面是如何在MSYS2 下編譯SDK:

  1. 項(xiàng)目的目錄結(jié)構(gòu)可以參考下面:

將下載的sdk文件放到 include 目錄下

將需要開(kāi)發(fā)的 cpp 文件放在 src 下面。

myproject:
    - include
        - bin
        - include
        - lib
    - src
        - main.cpp
        - *.cpp
    - CMakeLists.txt



2. SDK項(xiàng)目一般使用CMAKE 來(lái)進(jìn)行編譯的, 下面就是一個(gè)CMAKE需要的 CMakeLists.txt 的示例模板

cmake_minimum_required(VERSION 3.10)
project(main VERSION 1.0.0)
# 將所有 .cpp 文件列出來(lái)
file(GLOB PLUGIN_SOURCE src/*.cpp)

# add_library 表示增加一個(gè)庫(kù)文件目標(biāo)
# 由于是使用 dlopen() 載入,需要是 MODULE 類型
add_library(${PROJECT_NAME} MODULE ${PLUGIN_SOURCE})
# 插件的文件名總是 main
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "main")
# module 類型的庫(kù)不需要 lib 前綴
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")

# 鏈接 bex
add_library(bex SHARED IMPORTED)
set_target_properties(bex PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/include/include)
set_target_properties(bex PROPERTIES IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/include/bin/libbex.dll)
set_target_properties(bex PROPERTIES IMPORTED_IMPLIB ${PROJECT_SOURCE_DIR}/include/lib/libbex.dll.a)

target_link_libraries(${PROJECT_NAME} bex)


3. 如何使用 msys2 構(gòu)建

打開(kāi) msys2 版的 mingw64 窗口(解壓后 msys64-tmp 目錄下的 mingw64.exe),進(jìn)入到 SDK的開(kāi)發(fā)目錄層后新建一個(gè) build 目錄用于存儲(chǔ)編譯的文件

cd <my_project> 
mkdir build && cd build


進(jìn)行 configure

cmake .. -G "MinGW Makefiles"


進(jìn)行編譯


為了方便可以設(shè)置一下 bash alias,將mingw32-make命名為make

nano ~/.bashrc

在最后一行添加:

alias make='mingw32-make'

重新加載bash信息

. ~/.bashrc

進(jìn)行編譯:

make -jN # N 表示開(kāi)啟的線程數(shù)

編譯結(jié)束后會(huì)看到 main.dll 


在北太天元的安裝目錄下的 plugins 文件夾下 新建一個(gè)文件夾,名字為 你開(kāi)發(fā)插件的名字,例如 myplugin


然后在北太天元的 

幫助 -> 插件

加載



---------------------------------------------------------------

示例中用到的所有文件附件:

附件

回復(fù)

回復(fù)

重置 提交