重载运算符的操作实际是由函数来实现的,这个函数为什么不用添加到bexfun_info_t flist[]。很好奇,因为不添加进去,其他同事怎么查询他的用法呢?
请问在给北太天元开发插件的时候如果需要用到blas或者lapack,头文件的名字是什么呢?我尝试了这两种库常见的头文件名如cblas.h,lapacke.h等等,好像都过不去?
首先是一些相关资源的分享:1. Windows下MSYS2 开发环境的地址:打包好的MSYS2的百度云地址2. SDK相关开发教程和视频: 开发示例文档 , 开发教程视频下面是如何在MSYS2 下编译SDK:项目的目录结构可以参考下面:将下载的sdk文件放到 include 目录下将需要开发的 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 构建打开 msys2 版的 mingw64 窗口(解压后 msys64-tmp 目录下的 mingw64.exe),进入到 SDK的开发目录层后新建一个 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 表示开启的线程数编译结束后会看到 main.dll 在北太天元的安装目录下的 plugins 文件夹下 新建一个文件夹,名字为 你开发插件的名字,例如 myplugin然后在北太天元的
帮助 -> 插件加载---------------------------------------------------------------示例中用到的所有文件附件:附件
由于北太天元发布的开发的插件的SDK是使用GCC编译器生成的,不支持微软编译器的使用,在Windows平台下必须部署对应的 GCC 编译器开发环境才能开展 c/c++ 插件的开发工作。我们可以采用基于MSYS2的MinGW-w64 GCC搭建Windows下C++开发环境。MSYS2是仿Linux的终端交互环境,可以使用Linux下的终端命令和快捷方式,自带pacman软件管理包,让您将精力放到C++代码的编写上,而不是复杂的依赖环境的搭建和编译,可以复用自己在Linux下的开发经验。使用g++进行库的链接、源码编译等操作,可更进一步了解C++代码的编译过程。绿色便携版本的 MSYS2 + MinGW64 开发环境包传送阵如下:北太天元v3.6.1及其之前的软件版本可以使用以下绿色环境:链接: https://pan.baidu.com/s/15KEJ_CZpEjNo_hQ7JIuAeQ提取码: 5361 北太天元v3.6.0-dev(开发预览版)及其之后的软件正式或预览版本将使用以下绿色环境:链接:https://pan.baidu.com/s/12eAGnIMv78ZzoY-G6aKUrw提取码:oeil