重載運算符的操作實際是由函數(shù)來實現(xiàn)的,這個函數(shù)為什么不用添加到bexfun_info_t flist[]。很好奇,因為不添加進去,其他同事怎么查詢他的用法呢?
請問在給北太天元開發(fā)插件的時候如果需要用到blas或者lapack,頭文件的名字是什么呢?我嘗試了這兩種庫常見的頭文件名如cblas.h,lapacke.h等等,好像都過不去?
首先是一些相關資源的分享:1. Windows下MSYS2 開發(fā)環(huán)境的地址:打包好的MSYS2的百度云地址2. SDK相關開發(fā)教程和視頻: 開發(fā)示例文檔 , 開發(fā)教程視頻下面是如何在MSYS2 下編譯SDK:項目的目錄結(jié)構(gòu)可以參考下面:將下載的sdk文件放到 include 目錄下將需要開發(fā)的 cpp 文件放在 src 下面。
myproject: - include - bin - include - lib - src - main.cpp - *.cpp - CMakeLists.txt2. SDK項目一般使用CMAKE 來進行編譯的, 下面就是一個CMAKE需要的 CMakeLists.txt 的示例模板
cmake_minimum_required(VERSION 3.10) project(main VERSION 1.0.0) # 將所有 .cpp 文件列出來 file(GLOB PLUGIN_SOURCE src/*.cpp) # add_library 表示增加一個庫文件目標 # 由于是使用 dlopen() 載入,需要是 MODULE 類型 add_library(${PROJECT_NAME} MODULE ${PLUGIN_SOURCE}) # 插件的文件名總是 main set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "main") # module 類型的庫不需要 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)建打開 msys2 版的 mingw64 窗口(解壓后 msys64-tmp 目錄下的 mingw64.exe),進入到 SDK的開發(fā)目錄層后新建一個 build 目錄用于存儲編譯的文件
cd <my_project> mkdir build && cd build進行 configure
cmake .. -G "MinGW Makefiles"進行編譯為了方便可以設置一下 bash alias,將mingw32-make命名為make
nano ~/.bashrc在最后一行添加:
alias make='mingw32-make'重新加載bash信息
. ~/.bashrc進行編譯:
make -jN # N 表示開啟的線程數(shù)編譯結(jié)束后會看到 main.dll 在北太天元的安裝目錄下的 plugins 文件夾下 新建一個文件夾,名字為 你開發(fā)插件的名字,例如 myplugin然后在北太天元的
幫助 -> 插件加載---------------------------------------------------------------示例中用到的所有文件附件:附件
由于北太天元發(fā)布的開發(fā)的插件的SDK是使用GCC編譯器生成的,不支持微軟編譯器的使用,在Windows平臺下必須部署對應的 GCC 編譯器開發(fā)環(huán)境才能開展 c/c++ 插件的開發(fā)工作。我們可以采用基于MSYS2的MinGW-w64 GCC搭建Windows下C++開發(fā)環(huán)境。MSYS2是仿Linux的終端交互環(huán)境,可以使用Linux下的終端命令和快捷方式,自帶pacman軟件管理包,讓您將精力放到C++代碼的編寫上,而不是復雜的依賴環(huán)境的搭建和編譯,可以復用自己在Linux下的開發(fā)經(jīng)驗。使用g++進行庫的鏈接、源碼編譯等操作,可更進一步了解C++代碼的編譯過程。綠色便攜版本的 MSYS2 + MinGW64 開發(fā)環(huán)境包傳送陣如下:北太天元v3.6.1及其之前的軟件版本可以使用以下綠色環(huán)境:鏈接: https://pan.baidu.com/s/15KEJ_CZpEjNo_hQ7JIuAeQ提取碼: 5361 北太天元v3.6.0-dev(開發(fā)預覽版)及其之后的軟件正式或預覽版本將使用以下綠色環(huán)境:鏈接:https://pan.baidu.com/s/12eAGnIMv78ZzoY-G6aKUrw提取碼:oeil