1.二、源码软件安装
2.OpenCV下载和安装(包含所有平台)!
3.Linux虚拟机安装、安装openmp与mpi并行环境配置
4.Jetson nano部署Yolov8
5.visual c++ å32ä½ç³»ç»å64ä½ç³»ç»ä¹ï¼
6.交åç¼è¯å¨çåç±»
二、源码软件安装
安装WRF建模系统的安装软件在移植平台上相对简单,主要由独立的源码模型组件构成。WRF包包含ESMF的安装linux 安装mysql源码Fortran接口和FFTPACK源代码,但需要用户安装外部库,源码如支持观测类型和线性代数求解器。安装同样,源码WPS包的安装其他外部库(如Grib2处理支持)也是必需的,且所有系统均需netCDF库,源码可以从Unidata官网下载。安装WRF已被移植到多种Unix系统,源码支持多种硬件和软件配置。安装
构建WRF和WPS需要特定的源码编译器和脚本语言,如Fortran 、C语言以及perl、Cshell和Bourne shell等。大部分代码使用Fortran,能看见asp源码WPS利用MPI库进行分布式内存通信,辅助程序如文件解析和构建也需在构建过程中使用。WRF构建过程需要netCDF 3.6.1或更高版本,以及可能的HDF5以支持压缩功能。WRF和WPS的详细构建指南可在相关网站获取。
安装过程中,必须下载Unidata的netCDF库,通常还需添加其bin目录到路径中。对于使用多个编译器的Linux或Darwin系统,需要确保外部库的兼容性。WRF后处理工具包括NCAR命令语言、NCL脚本、WRF-Python和GrADS等,每种都有特定的用途和定制选项。
在UNIX环境设置中,仅需配置模型核心和数据同化相关路径,以及指定WRF组件的库和include目录。如果使用OpenMP,微转赚源码需设置线程数并注意可能的堆栈大小问题。WRF代码构建机制会根据系统结构自动选择构建选项,如单处理器、共享内存并行或分布式内存并行。编译WRF代码时,推荐获取最新版本并选择合适的构建标志。
最后,构建WPS在WRF已构建后进行,需注意Grib2数据的额外库,如zlib、png和jasper。WPS配置时需选择合适的Grib解码选项,并设置必要的压缩库路径。WPS编译完成后,会生成geogrid.exe、ungrib.exe和metgrid.exe等核心工具。
OpenCV下载和安装(包含所有平台)!
在 OpenCV 的官方网站上,可以下载其最新完整版本以及多数 release 版本的android商城淘宝源码源码。如今,OpenCV 使用 Git 进行版本管理,同时也利用 Cmake 进行工程构建。
在 Windows 中,可通过下载 EXE 文件,该文件会将预编译好的 OpenCV 解压到本地,适配不同版本的 Visual Studio。然而,Windows 缺乏包含 debug 版本库的预编译版本,因此需要在项目启动前手动编译。需额外设置环境变量 OPENCV_DIR,通过 `setx` 命令将其路径设置为 `D:\OpenCV\Build\x\vc`。静态链接 OpenCV 仅需此步,若需动态链接库(DLL),需确保编译器能访问 `%OPENCV_DIR%\bin`。针对 Windows ,可于系统属性 -> 环境变量中添加 `%OPENCV_DIR%\bin` 到 path 变量。
使用源代码进行 OpenCV 编译,3188.la 源码步骤包括运行 CMake GUI,设置 OpenCV 源码目录以及构建目标文件夹,配置编译器(或选择 MinGW 构建文件),使用 Visual Studio 打开生成的解决方案进行编译。Linux 环境下,需准备 GCC、GLIBC、GTK+ 2.x或更高版本、cmake、libtbb等库,下载源代码后通过 `./configure --enable-shared`、`make`、`sudo make install` 进行编译。
注意在 Ubuntu、Debian、SuSE等 Linux 发行版中,可能提供内置 OpenCV,否则需使用源代码安装,安装要求包括 Python 2.6 或更高版本、NumPy、ffmpeg 的 libav* 库与头文件等。Linux 与 Windows 类似,CMake 配置允许自定义构建选项,如构建指定例子、增加 Python 支持或启用 CUDA 功能。当编译完成时,文件将安装在指定目录,利用 IPP 进行加速,除非通过 CMake 指令明确禁用。
Mac 系统安装 OpenCV 类似于 Linux,Xcode 提供了构建和调试所需的大多数工具。Mac 默认采用 Cocoa 替代 GTK+、QTKit 替代 ffmpeg、GDC 替代 TBB 和 OpenMP。从 GitHub 的 OpenCV Git 仓库下载最新版本,Linux 用户可执行 `git clone /opencv/opencv.git`。在编程路上,不断进阶与探索是值得的。
Linux虚拟机安装、openmp与mpi并行环境配置
使用VMware Workstation Pro安装Linux虚拟机。
前往VMware官网下载Workstation Pro的安装包。
双击运行安装,按照向导步骤点击下一步完成设置。
在体验设置中建议勾选安装相关选项并点击下一步。
设置快捷方式,完成安装步骤。
输入许可证码(如:YF-0HF8P-MRQ-2DXQE-M2UT6)。
虚拟机安装完成,通过桌面快捷方式启动。
下载Ubuntu镜像文件,利用清华大学开源软件镜像站加速。
在VMware中创建新的虚拟机,选择自定义设置。
安装配置中,选择“稍后安装操作系统”,并选择Linux系统。
填写虚拟机名称和配置内存大小(如4GB)。
设置网络、磁盘类型和大小,配置完成后,添加ISO映像文件。
开启虚拟机,安装过程包括选择键盘布局、操作系统安装模式、安装位置等。
安装过程中选择最小安装选项并输入必要信息。
等待安装完成,重启虚拟机。
Ubuntu安装完毕后即可使用。
在Linux环境配置并行环境。
打开终端,更新系统:运行sudo apt update。
安装C++语言和OpenMP相关软件包,执行sudo apt install build-essential命令。
验证OpenMP成功安装:输入gcc -v。
安装MPI环境,首先从MPICH网站下载源码包mpich-4.0.2.tar.gz,然后解压并配置安装路径:./configure -prefix=/home/lpf/mpi。
编译并安装MPI,使用sudo make安装。
配置环境变量,打开~/.bashrc,在文件末尾添加以下内容:
export MPI_ROOT=/home/lpf/mpi/mpi4
export PATH=$MPI_ROOT/bin:$PATH
export MANPATH=$MPI_ROOT/man:$MANPATH
验证环境变量配置,使用which命令。
检查并行环境配置,执行mpirun -np 4 ./cpi命令进行测试。
成功输出表示并行环境配置完成。
Jetson nano部署Yolov8
于年1月日成功完成了Jetson nano B的Yolov8部署,无需科学上网,准备工作包括U盘。
1. 安装流程首先从官网获取Jetson nano开发者套件SD卡镜像并下载(压缩文件需解压)。
1.2 使用Etcher工具进行烧录
2. 配置Python环境:推荐Python 3.8,因ultralytics要求。创建独立环境,具体步骤如下:
2.1 安装基础环境
2.2 下载Python 3.8源代码至Jetson Nano
2.3 解压并进入Python-3.8.文件夹进行后续操作
2.4 到Python-3.8.中编译并配置Python环境
3.1 安装PyTorch和Torchvision:由于平台不兼容,需手动下载预编译和编译安装
3.2 将下载的文件传输至U盘,通过终端在Jetson nano中安装
3.3 安装ultralytics,注意在激活独立环境后操作
4. 使用时,每次启动需打开独立环境,可能遇到libomp.so.5库缺失,需安装OpenMP库解决
5. 个人简介:拥有丰富的学习和竞赛经历,目前准备出国留学,目标是新加坡国立大学的机器人学研究生
5.2 可通过以下方式联系:
CSDN主页,小红书和抖音,Gitee和Github代码仓库,以及ac@.com邮箱和微信。
visual c++ åä½ç³»ç»åä½ç³»ç»ä¹ï¼
Microsoft Visual C++ï¼ï¼ç®ç§°Visual C++ãMSVCãVC++æVCï¼æ¯Microsoftå ¬å¸æ¨åºçå¼åWinç¯å¢ç¨åºï¼é¢å对象çå¯è§åéæç¼ç¨ç³»ç»ãå®ä¸ä½å ·æç¨åºæ¡æ¶èªå¨çæãçµæ´»æ¹ä¾¿ç类管çã代ç ç¼ååçé¢è®¾è®¡éæ交äºæä½ãå¯å¼åå¤ç§ç¨åºçä¼ç¹ï¼èä¸éè¿ç®åç设置就å¯ä½¿å ¶çæçç¨åºæ¡æ¶æ¯ææ°æ®åºæ¥å£ãOLE2ï¼WinSockç½ç»ã3Dæ§å¶çé¢ã
Microsoft Visual C++ 1.0
éæäºMFC2.0ï¼æ¯Visual C++第ä¸ä»£çæ¬ï¼å¹´æ¨åºï¼å¯åæ¶æ¯æ´ä½å¤çå¨ä¸ä½å¤çå¨çï¼æ¯Microsoft C/C++ 7.0çæ´æ°çæ¬ã
Microsoft Visual C++ 1.5
éæäºMFC2.5ï¼å¢å äºâç®æ æ件é¾æ¥åµå ¥ (OLE)2.0 åæ¯æMFCçå¼æ¾å¼æ°æ®åºé¾æ¥ï¼ODBCï¼ãè¿ä¸ªçæ¬åªæä½çï¼ä¹æ¯ç¬¬ä¸ä¸ªä»¥CD-ROM为软件载ä½ççæ¬ãè¿ä¸ªçæ¬ä¹æ²¡ææè°âæ åçâãå®æ¯æåä¸ä¸ªæ¯æä½è½¯ä»¶ç¼ç¨ç软件ï¼ä¹æ¯ç¬¬ä¸ä¸ªæ¯æåºäºxæºå¨çä½ç¼ç¨è½¯ä»¶ã
Microsoft Visual C++ 2.0
éæäºMFC 3.0ï¼ç¬¬ä¸ä¸ªåªåè¡ä½ççæ¬ãè¿ä¸ªçæ¬æååè¡äºï¼å ä¹æäºä¸ä¸ªâ丢失ççæ¬âãè¿æ¯å 为é£ä¸ªæ¶åWindows ï¼å¼å代ç 为"Chicago"ï¼è¿æ²¡æåè¡ï¼èWindows NTååªå æå¾å°çå¸åºä»½é¢ã该çæ¬ç¨æ·å¯ä»¥éè¿å¾®è½¯å ¬å¸ç订é æå¡ï¼Microsoft Subscription Serviceï¼å级è³2.1å2.2çæ¬ãå¾®è½¯å ¬å¸å¨è¿ä¸ªçæ¬ä¸éæ并å级äºVisual C++1.5ï¼ä½ä¸º2.0çæ¬ï¼Visual C++ 1.5å级åçæ¬å·ï¼1.ï¼ä»¥å2.1çæ¬ï¼Visual C++1.5å级åçæ¬å·ï¼1.ï¼çä¸é¨åãVisual C++ 2.xé带äºä½åä½çæ¬çCDKï¼åæ¶æ¯æWinsçå¼åãVisual C++ 2.2åå ¶åç»çæ¬ä¸åå级Visual C++ 1.5ï¼å°½ç®¡å®ä¸ç´è¢«éæè³Visual C++ 4.xï¼ã尽管åºççæ¯Windows æ©ï¼è¿ä¸ªçæ¬çåè¡æ¥æè¿æ¯é常æ¥è¿Windows ï¼å¯æ¯å½Windows åè¡æ¶ï¼ Visual C++ 4.0ä¹å·²ç»åè¡äºãå æ¤å¾å¤ç¨åºå¼åè ç´æ¥ä»1.xè¿æ¸¡å°4.0ï¼æ2.xè·³è¿å»äºã
Microsoft Visual C++ 4.0
éæäºMFC4.0ï¼è¿ä¸ªçæ¬æ¯ä¸é¨ä¸ºWindows 以åWindows NT设计çãç¨æ·å¯ä»¥éè¿å¾®è½¯å ¬å¸ç订é æå¡ï¼MicrosoftSubscription Serviceï¼å级è³4.1å4.2çæ¬ï¼æ¤çæ¬ä¸åæ¯æWinså¼åï¼ã
Microsoft Visual C++ 5.0
éæäºMFC 4.ï¼æ¯4.2ç以æ¥æ¯è¾å¤§çä¸æ¬¡å级ã
Microsoft Visual C++ 6.0
éæäºMFC6.0ï¼äºåè¡ãåè¡è³ä»ä¸ç´è¢«å¹¿æ³å°ç¨äºå¤§å¤§å°å°ç项ç®å¼åãä½æ¯ï¼è¿ä¸ªçæ¬å¨WindowsXPä¸è¿è¡ä¼åºç°é®é¢ï¼å°¤å ¶æ¯å¨è°è¯æ¨¡å¼çæ åµä¸ï¼ä¾å¦ï¼éæåéçå¼å¹¶ä¸ä¼æ¾ç¤ºï¼ã è¿ä¸ªè°è¯é®é¢å¯ä»¥éè¿æä¸ä¸ªå«âVisual C++ 6.0Processor Packâçè¡¥ä¸æ¥è§£å³ãå¥æªçæ¯ï¼è¿ä¸ªç½é¡µå¼ºè°ç¨æ·ä¹å¿ é¡»è¿è¡Windows ãWindows NT4.0ãæWindows ãè¿ä¸ªC++çæ¬å¯¹win7çå ¼å®¹æ§é常差ï¼æ大大å°å°çå ¼å®¹æ§é®é¢ã微软ä¸æ¨èå®è£ å¨windows7ä¸ã
MicrosoftVisual C++ .NET
ä¹å³Visual C++ 7.0ï¼äºå¹´åè¡ï¼éæäºMFC7.0ï¼æ¯æé¾æ¥æ¶ä»£ç çæåè°è¯æ§è¡æ¶æ£æ¥ãè¿ä¸ªçæ¬è¿éæäºManaged Extension for C++ï¼ä»¥åä¸ä¸ªå ¨æ°çç¨æ·çé¢ï¼ä¸Visual BasicåVisual C#å ±ç¨ï¼ãä»è¿ä¸ªçæ¬å¼å§ï¼ææçAPIå½¢å¼ä¸é½è¢«å®ä¹æä½æ°æ å ³çï¼å¹¶ä¸å¼å§æ¯æåçä½è½¯ä»¶çå¼åã
MicrosoftVisual C++ .NET
ä¹å³ Visual C++ 7.1ï¼éæäºMFC 7.1ï¼äºå¹´åè¡ï¼æ¯å¯¹Visual C++ .NET çä¸æ¬¡é大å级ã
MicrosofteMbedded Visual C++
ç¨äºWindows CEæä½ç³»ç»ãVisual C++ä½ä¸ºä¸ä¸ªç¬ç«çå¼åç¯å¢è¢«Microsoft Visual Studio ææ¿ä»£ã
MicrosoftVisual C++
ä¹å³Visual C++ 8.0ï¼éæäºMFC 8.0ï¼äºå¹´æåå¸ãè¿ä¸ªçæ¬å¼è¿äºå¯¹C++/CLIè¯è¨åOpenMPçæ¯æã
MicrosoftVisual C++
ä¹å³Visual C++ 9.0ï¼äºå¹´æåå¸ãè¿ä¸ªçæ¬æ¯æ.NET 3.5ãä»è¿ä¸ªçæ¬å¼å§ï¼å¾®è½¯æ¾å¼äºå¯¹ç¼åWin9xæ¶æç³»ç»ä¸ç软件çæ¯æãæ¤çæ¬æ´å 稳å®ãVC++æ¯ç®åæ稳å®çæ¬ã
MicrosoftVisual C++
Visual C++ .0ï¼å¹´åå¸ï¼æ°æ·»å äºå¯¹C++æ åå¼å ¥çå 个æ°ç¹æ§çæ¯æã
MicrosoftVisual C++
Visual C++ .0ï¼ å¹´5ææ¥åå¸ï¼æ¯æ.net4.5 betaï¼å¹¶å®ç°go liveãåªè½å®è£ äºwin7æè æ´é«çwindowsæä½ç³»ç»ï¼å¦ææ°åå¸çwindows8çï¼ãå¯ä»¥å¼åwindows8ä¸ç¨çModern UIé£æ ¼çåºç¨ç¨åºãç¸æ¯åæ·»å äºå°é对C++æ åå¼å ¥çæ°ç¹æ§çæ¯æã
MicrosoftVisual C++
Visual C++ .0ï¼ å¹´8æåå¸ï¼å¯ä»¥çä½æ¯Visual C++ .0çå级çãè¿ä¸ªçæ¬ç¸å¯¹äºæ·»å äºå¤§é对C++æ åçæ¯æãå¯ä»¥å¼åwindows8.1ä¸ç¨çModern UIé£æ ¼çåºç¨ç¨åºï¼ä½å´ä¸æ¯æwindows8ï¼æ¯æwindows8.1ï¼ãå¼åç¯å¢äº¦å ç½®äºæºä»£ç æè²çåè½ã
ææ°ç¨³å®çæ¬ï¼äº¦éç¨äºï¼
Visual C++ 被æ´åå¨Visual Studioä¹ä¸ï¼ä½ä»å¯åç¬å®è£ 使ç¨ã
åèèµæï¼ç¾åº¦ç¾ç§
交åç¼è¯å¨çåç±»
ç¼è¯å¨å¯ä»¥çæç¨æ¥å¨ä¸ç¼è¯å¨æ¬èº«æå¨ç计ç®æºåæä½ç³»ç»ï¼å¹³å°ï¼ç¸åçç¯å¢ä¸è¿è¡çç®æ 代ç ï¼è¿ç§ç¼è¯å¨åå«åâæ¬å°âç¼è¯å¨ãå¦å¤ï¼ç¼è¯å¨ä¹å¯ä»¥çæç¨æ¥å¨å ¶å®å¹³å°ä¸è¿è¡çç®æ 代ç ï¼è¿ç§ç¼è¯å¨åå«å交åç¼è¯å¨ã交åç¼è¯å¨å¨çææ°ç硬件平å°æ¶é常æç¨ãâæºç å°æºç ç¼è¯å¨âæ¯æç¨ä¸ç§é«é¶è¯è¨ä½ä¸ºè¾å ¥ï¼è¾åºä¹æ¯é«é¶è¯è¨çç¼è¯å¨ãä¾å¦: èªå¨å¹¶è¡åç¼è¯å¨ç»å¸¸éç¨ä¸ç§é«é¶è¯è¨ä½ä¸ºè¾å ¥ï¼è½¬æ¢å ¶ä¸ç代ç ï¼å¹¶ç¨å¹¶è¡ä»£ç 注é对å®è¿è¡æ³¨éï¼å¦OpenMPï¼æè ç¨è¯è¨æé è¿è¡æ³¨éï¼å¦FORTRANçDOALLæ令ï¼ãé¢å¤çå¨ï¼preprocessorï¼
ä½ç¨æ¯éè¿ä»£å ¥é¢å®ä¹çç¨åºæ®µå°æºç¨åºè¡¥å å®æ´ã
ç¼è¯å¨å端ï¼frontendï¼
å端主è¦è´è´£è§£æï¼parseï¼è¾å ¥çæºä»£ç ï¼ç±è¯æ³åæå¨åè¯æåæå¨ååå·¥ä½ãè¯æ³åæå¨è´è´£ææºä»£ç ä¸çâåè¯âï¼Tokenï¼æ¾åºæ¥ï¼è¯æåæå¨æè¿äºåæ£çåè¯æé¢å å®ä¹å¥½çè¯æ³ç»è£ æææä¹ç表达å¼ï¼è¯å¥ ï¼å½æ°ççã ä¾å¦âa = b + c;âå端è¯æ³åæå¨çå°çæ¯âaï¼ =ï¼ b ï¼ +ï¼ c;âï¼è¯æåæå¨æå®ä¹çè¯æ³ï¼å æä»ä»¬ç»è£ æ表达å¼âb + câï¼åç»è£ æâa = b + câçè¯å¥ã å端è¿è´è´£è¯ä¹ï¼semantic checkingï¼çæ£æ¥ï¼ä¾å¦æ£æµåä¸è¿ç®çåéæ¯å¦æ¯åä¸ç±»åçï¼ç®åçé误å¤çãæç»çç»æ常常æ¯ä¸ä¸ªæ½è±¡çè¯æ³æ ï¼abstract syntax treeï¼æ ASTï¼ï¼è¿æ ·å端å¯ä»¥å¨æ¤åºç¡ä¸è¿ä¸æ¥ä¼ååå¤çã
ç¼è¯å¨å端ï¼backendï¼
ç¼è¯å¨å端主è¦è´è´£åæï¼ä¼åä¸é´ä»£ç ï¼Intermediate representationï¼ä»¥åçææºå¨ä»£ç ï¼Code Generationï¼ã
ä¸è¬è¯´æ¥ææçç¼è¯å¨åæï¼ä¼åï¼ååé½å¯ä»¥åæ两大类ï¼å½æ°å ï¼intraproceduralï¼è¿æ¯å½æ°ä¹é´ï¼interproceduralï¼è¿è¡ãå¾ææ¾ï¼å½æ°é´çåæï¼ä¼åæ´åç¡®ï¼ä½éè¦æ´é¿çæ¶é´æ¥å®æã