研发环境配置
git
vscode
- python拓展
- c++拓展
ssh
- remote ssh
- 如何在VSCode中使用SSH客户端
Anaconda
- 安装后找不到conda命令:环境变量,只添加
Script
就可以 - powershell命令前没有(base):执行
conda init
- 执行上一步之后powershell出现红色报警
无法加载文件 C:\Users\Mi\Documents\WindowsPowerShell\profile.ps1
:解决“无法加载文件 ***\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本” - Linux下
.condarc
文件中存储相关源等,如果源不生效可以删除default
模型
- Netron
- onnx模型显示输出形状
MSYS2
- cmake与make需要自己安装:windows下使用MSYS2安装MinGW并配置CMake:更新,也可以通过msys2安装,十分方便,甚至git也可以通过这个包管理软件,命令:
pacman -S
- 安装完成以后需要将C:\msys64\mingw64\bin下面的mingw32-make.exe拷贝一份从新命令为make.exe,这样系统就可以找到这个可执行文件了
- 安装make之后拥有一个别名
mingw32-make.exe
,直接用这个可以找到,有一些博客建议复制一份make.exe
,可能会出错,详情见我之前的博客 - 可以通过MSYS2安装ruby、git
Android
- Android Studio是一个SDK,是用来提供java环境的,而有一个概念叫做NDK,是可以为java提供jni(对于C/C++)的接口的,二者的作用不同
- 中文包:插件安装,注意版本
- Gradle:Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建app。我的理解是跟cmake差不多。推荐文章:十分钟理解Gradle
- Groovy
- Kotlin
- 下载解压了NDK之后,添加系统环境变量,powershell可以找到
ndk-build
,但是在Android Studio中找不到,需要在项目中再下载一遍,我的理解是单独在官网下载后直接添加环境变量应该就可以了,不应该再使用SDK下载NDK。在local.properties
文件中可以配置ndk.dir
的路径 - 安卓项目是
.apk
,安卓包是.aar
- make之后的项目默认目录在:
[项目名称]\app\build\outputs\
下面,我这里还多了一个debug
目录,里面就有一个.apk
文件 - make之后就可以得到apk了,run这个操作只是在模拟硬件或者真实硬件中运行
- not executable: 64-bit ELF file:这通常是因为此时的可执行文件不是arm平台(指令集不同)的,解决方法有2种:
- 使用Android Studio编译出安卓平台的文件
- 在本编译平台交叉编译
aar
和jar
的区别:JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件; Android库项目的二进制归档文件,包含所有资源,class以及res资源文件全部包含ANDROID_HOME
和ANDROID_NDK
的路径:可能一个是指sdk,一个是指ndk,sdk的话可能是sdkmanager
的路径(不确定,好像不是Android Studio安装包的路径,是一个AppData下面的路径,例如:C:/Users/XXX/AppData/Local/Android/Sdk/tools/bin)
冷知识
- 可以打开的最长字符串为512M(以json文件为例):
这是 V8 的限制。我确认 64 位平台上字符串中 UTF16 代码点的最大数量已从-((-1) << 30 + 1)= 2147483648 = 2048M
变为((1 << 29) - 24)= 536870888 = 512M
(这也是 Chrome 中当前浏览器的限制)
BUG
概念
- opencl:异构平台编写程序的框架
- opengl:用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)
- openVX:瞄准了计算机视觉及相关应用场景中的嵌入式系统与实时计算程序部分
- openVG、openXR
- Vulkan:Vulkan是一个低开销、跨平台的二维、三维图形与计算的应用程序接口(API),科纳斯最先把Vulkan API称为“次世代OpenGL行动”(next generation OpenGL initiative)或“glNext”
- flatbuffers:高效的跨平台序列化库
- arm64-v8a 和 armeabi-v7a:总之不管有多少版本,可以简单认为:v7a是32位cpu适用,而v8a是64位cpu适用
CMake
find_package
的用法Failed to detect a default CUDA architecture.
,how do I set the Cuda architecture to 86:寻找nvcc的位置可以用:which nvcc
- 一个很好的博客:CMake 保姆级教程(上);**真的特别好!**继续推荐另一篇:CMake 保姆级教程(下)
- 动态库,静态库,在CMakeLists中的链接方式不一样
PyTorch
- 如果使用conda,修改了下载源进行下载的话,不推荐使用官网的命令,命令中
-c pytorch
表示是从pytorch的官网通道下载,即指定通道失效了