当前位置: 首页 > news >正文

[4A/OP]

2.2 安装程序

2.2.1 解压缩.tar.gz文件

调用UNIX命令tar会在当前目录下创建4A/OP子例程主目录4AOP-1.5/,包括所有必要的子目录。只需键入以下命令即可解压缩和“untar”4AOP-1.5.tar.gz:

tar -xzvf 4AOP-1.5.tar.gz

4AOP-1.5/目录现在应该已经创建,并且应该包含以下文件和子目录:README、VERSION以及目录DDC、model/、gui/和test。

2.2.2.生成文件

如上一章所述,支持以下编译器:

  • C编译器
    • GNU gcc(4.4.7或4.9.3)
    • Intel icc
  • Fortran编译器
    • GNU gfortran(4.4.7或4.9.3)
    • Intel ifort(12.1.3)

根据您要用于构建4A/OP的编译器,您需要将正确的编译参数设置到编译过程中使用的生成文件中。

srclib子目录中提供了一些生成文件的示例(生成文件.4a{IDCOMPIL}.inc文件,其中{IDCOMPIL}是编译的配置标识符)。

下面是一个使用gcc和gfortran的简单makefile示例:

# Makefile.4a 
# GNU 
CC     = gcc 
FC     = gfortran 
SHELL  = /bin/ksh 
RANLIB = ranlib 
AR = ar 
INCLUDES = -I $(RDIR_S_MOD) -J $(RDIR_S_MOD) 
CFLAGS   
= -DSWAPIO -O3 -mieee-fp -ffloat-store -march=native  
FFLAGS   
= -O3 -fconvert=big-endian -mcmodel=large -cpp -ffloat-store -mieee-fp -march=native 
LDFLAGS  = -O3 -fconvert=big-endian -mcmodel=large -cpp -ffloat-store -mieee-fp -march=native -Wl -lnetcdf -lnetcdff

gcc版本9.4.0
gfortran版本9.4.0
直接使用Makefile.4a.gfortran.inc

LDFLAGS += -L/opt/netcdf/lib -lnetcdf -lnetcdff

2.2.3. 安装

2.2.3.1. 编译程序

对于编译,有必要准备编译配置,这取决于将使用的编译器。在目录模型的子目录srclib中,在文件Makefile.4a{IDCOMPIL}.inc中有一些配置定义的示例,其中{IDCOMPIL}是编译的配置标识符。用户必须编辑这样的配置文件,使配置适应其自己的计算环境,并保存此配置。要提供的信息是fortran和C编译器路径及其选项(CC、FC、CFLAGS、FFLAGS和LDFLAGS)。

编译的工作目录是srclib/。

因此,编译命令如下:

make all IDCOMPIL={your own parameters} 

编译生成库、目标文件和可执行文件。这些编译输出放置在library/lib$IDCOMPIL目录以及子目录libexe(可执行文件)、libobj(对象)、libmod(模块)和lib(库)中。子目录库/lib$IDCOMPIL/libexe/应包含可执行文件mainaaaa、atmformat、aerformat、lirespc4a、calcStat、calcStaJ、ifctgauss、spjac和statanalyst。

编译还创建了用于存储4A模拟和ISRF准备结果的目录:outputbin$IDCOMPIL、outputascii$IDCOMPIL和ISRF$IDCOMPIL。

示例:用户可以使用发行版附带的配置文件进行编译:IDCOMPIL=.gfortran,如下所示:

make all IDCOMPIL=.gfortran 

出现错误:-bash: make: command not found
原因分析:一般出现这个-bash: make: command not found提示,是因为安装系统的时候使用的是最小化mini安装,系统没有安装make、vim等常用命令,直接sudo apt-get install安装下即可。
解决方法:

sudo apt-get install ksh
sudo apt-get update
sudo apt-get install  gcc automake autoconf libtool make

在 Linux 系统中,sudo install 的行为取决于你指定的目标路径(DESTDIR 或安装目录)。它不会自动安装到所有目录,而是按照你给定的参数进行安装。

1. sudo install 的典型用法

sudo install -m 755 source_file /usr/local/bin/target_file
  • 这个命令会将 source_file 安装到 /usr/local/bin/target_file,并设置权限为 755(可执行)。
  • 它只影响指定的目标路径,不会影响其他目录。

2. make install 通常如何工作?

如果你运行的是 sudo make install,它的行为取决于 Makefile 里的 install 规则。例如:

install:install -m 755 my_program /usr/local/bin/
  • 这个 install 目标会将 my_program 复制到 /usr/local/bin/不会影响其他目录

3. DESTDIR 变量(用于 staged installs)

有些 Makefile 支持 DESTDIR,允许临时安装到某个目录(如打包时使用):

sudo make install DESTDIR=/tmp/pkg
  • 这样文件会安装到 /tmp/pkg/usr/local/bin/ 而不是直接安装到 /usr/local/bin/
  • 仍然不会影响所有目录,只是更改了安装前缀。

4. sudo make install 会安装到哪里?

  • 默认情况下,make install 通常安装到:
    • /usr/local/bin/(可执行文件)
    • /usr/local/lib/(库文件)
    • /usr/local/include/(头文件)
    • /usr/local/share/(数据文件)
  • 不会自动安装到所有目录,而是按照 Makefileconfigure 脚本的配置进行安装。

5. 如何查看 make install 会安装哪些文件?

  • 可以运行 make -n install(模拟执行但不真正安装),查看它会复制哪些文件到哪些路径:
    make -n install
    
  • 或者检查 Makefile 里的 install 规则。

总结

  • sudo installsudo make install 不会安装到所有目录,而是按照给定的目标路径或 Makefile 规则安装。
  • 如果你担心它会污染系统,可以:
    • 使用 DESTDIR 测试安装位置。
    • make -n install 查看它会修改哪些文件。
    • 考虑使用 stowcheckinstall 进行更可控的安装。

如果你遇到某个软件安装到了意外的地方,可能是它的 Makefile 配置问题,可以检查它的安装规则。

相关文章:

[4A/OP]

2.2 安装程序 2.2.1 解压缩.tar.gz文件 调用UNIX命令tar会在当前目录下创建4A/OP子例程主目录4AOP-1.5/,包括所有必要的子目录。只需键入以下命令即可解压缩和“untar”4AOP-1.5.tar.gz: tar -xzvf 4AOP-1.5.tar.gz4AOP-1.5/目录现在应该已经创建&…...

C++学习之网络攻防以及信息搜索

目录 1.课程安排 2.课程介绍 3.渗透测试 4.ptes渗透测试执行标准的介绍 5.网络攻防环境的介绍 6.kali系统的介绍和调整 7.搜索引擎踩点 8.dnsenum和nslookup 9.whois命令 10.traceroute命令 11.复习 12.traceroute原理 13.telnet命令 14.在线存货ping 15.nmap扫描…...

4.5/Q1,GBD数据库最新文章解读

文章题目:Cross-Country Inequalities in Disease Burden and Quality of Care of Stroke, 1990-2021: A Systematic Analysis of the Global Burden of Disease Study 2021 DOI:10.1111/ene.70050 中文标题:1990 年至 2021 年中风疾病负担和…...

py语法基础理解

条件判断 只有if-else等我语句,Python不支持switch语句 单if语句 if 条件语句: 条件为真时执行的内容 if-else语句 if 条件语句: 条件为真时执行的内容 else: 条件为假时执行的内容 if-elif语句 else if if 条件语句1: 条件语句1为真时执行的内容 elif 条件语句…...

python——异常

1、定义 异常是在代码执行过程中发生的,它会影响到程序的正常运行。python程序不会自动来进行异常处理。python中常见异常父类:Exception。 2、常见异常 TypeError:类型错误异常。ValueError:值的异常。KeyError:键…...

深入理解指针(4)

1.二级指针 如何理解呢? 1.pp的类型是int * * ——二级指针类型 2.p指向a,a的类型是int 3.int * * pp 其中 int * 在说明 pp 是指向 p 的类型 int * ,第二个 * 说明 pp 是指针变量 4.p 1 跳过 4 个字节 , pp 1 跳过 4 或者 8 个字节&am…...

Apipost免费版、企业版和私有化部署详解

Apipost是企业级的 API 研发协作一体化平台,为企业提供 API研发测试管理全链路解决方案,不止于API研发场景,增强企业API资产管理。 Apipost 基于同一份数据源,同时提供给后端开发、前端开发、测试人员使用的接口调试、Mock、自动化…...

小火电视桌面 TV版 老旧历史版本安装包 官方免费下载

如果你还在为小火桌面tv版无法使用而烦恼,四处寻找其他新老版本安装包,那么不妨试试乐看家桌面,它能为你带来全新的电视使用体验。 乐看家桌面的界面简洁纯净,没有繁琐的层级和恼人的广告,大字体、大图标设计&#xff…...

Java常用API详解

本文将系统讲解Java开发中高频使用的工具类API,涵盖数学计算、系统操作、对象处理和大数运算等场景。ps:本文是免费的,如果被csdn锁了,请联系我.如果需要查看更详细的说明,可以查阅javaAPI帮助文档.我本来想直接把API文档整合到文章中方便大家下载,结果csdn这货直接…...

jdk-8u202-linux-x64.tar.gz官方下载地址

https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html 点击下载,需要先注册oracle账号,很好注册随便写,注册完登录就可以下载了。目前就Oracle JDK 8u201/202 是最后两个可免费用于商业用途的公开版本...

内联函数(c++)

预处理:优点:内嵌到目标代码,减少函数的调用。 缺点:在预处理阶段完成替换,避免了语义上的差错。 egg: #define SQR(X) ((X)*(X)) 函数:优点:完成了某一类操作的抽象,…...

Python 基础语法与数据类型(四) - 布尔类型 (bool) 与逻辑运算符 (and, or, not) 和类型转换

文章目录 布尔类型 (bool)逻辑运算符 (and, or, not)布尔值的“真值”判断 (Truthiness / Falsiness)类型转换 (Type Casting)总结 在前面的文章中,我们学习了数字类型(整型、浮点型)和字符串。今天,我们要介绍另一种非常基础且极…...

WebUI可视化:第7章:系统优化与部署实战

第7章:系统优化与部署实战 学习目标 ✅ 掌握Web应用的性能优化技巧 ✅ 实现安全可靠的线上部署 ✅ 配置监控与日志系统 ✅ 了解云服务成本控制方法 7.1 性能优化策略 7.1.1 前端优化 python # 示例:Gradio异步处理 demo.queue(concurrency_count=5) # 控制并发数 de…...

79. 单词搜索

题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或…...

Spring @Transactional 自调用问题深度解析

Spring Transactional 自调用问题深度解析 问题本质:自调用事务失效 当类内部的方法A调用同一个类的另一个带有Transactional注解的方法B时,事务注解不会生效。这是因为Spring的事务管理是基于AOP代理实现的,而自调用会绕过代理机制。 原理…...

支付宝小程序组件与页面构造器使用指南:从页面到组件的正确迁移

引言 在支付宝小程序开发中,我们经常会遇到需要将页面组件化的情况。本文将通过一个实际案例(将 /pages/plugin/device 从页面迁移到组件),深入分析支付宝小程序中页面和组件的区别,以及正确的迁移方式。我们将从问题…...

version `GLIBCXX_3.4.32‘ not found 解决方法

环境:Ubuntu 24.04 报错:ImportError: /home/ge/opt/anaconda3/envs/roboTwin/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.32 not found (required by /home/ge/Desktop/RoboTwin/third_party/pytorch3d_simplified/pytorch3d/_C.cpython-310-x86_6…...

vue3中nextTick的作用及示例

在Vue 3中,nextTick是一个用于处理DOM异步更新的工具函数,确保在数据变化后操作最新的DOM。以下是其作用的详细解析: 核心作用 延迟回调到DOM更新后:Vue的响应式系统会将数据变更批量处理,异步更新DOM。nextTick允许你…...

WHAT - 《成为技术领导者》思考题(第一章)

文章目录 思考题思路与示例框架1. 观察一位你心目中的领导者2. 若要提升自己的领导技能,你期望哪些方面得到提高?3. 如果领导技能提高,哪些生活层面可能恶化?值得吗?如何缓解?4. 列“提升他人生产效率” vs…...

今日行情明日机会——20250425

指数依然在震荡,等待方向选择,整体量能不搞但个股红多绿少。 2025年4月25日涨停板行业方向分析如下: 一、核心行业方向及驱动逻辑 一季报增长(17家涨停) 核心个股:惠而浦、鸿博股份、卫星化学驱动逻辑&am…...

数据库-子查询、关联查询 和 TCL 语言

标题目录 子查询使用场景子查询分类在 DQL 中使用子查询单行单列子查询多行单列子查询 在 DML 中使用子查询在 DDL 中使用子查询视图 关联查询关联关系的分类连接条件主外键关联N 表关联查询关联查询中使用聚合函数 TCL 语言事务的特性(ACID)在事务中控制…...

精华贴分享|【牛马课题】可转债多策略研究-1【基础篇】

本文来源于量化小论坛策略分享会板块精华帖,作者为Mc,发布于2025年3月19日。 以下为精华帖正文: 01 背景 本次牛马主题是可转债的多策略研究。在第一次牛马线上会议讨论时,我曾表达对今年转债市场的看好。 原因在于&#xff1a…...

精读27页健康医疗大数据安全管控分类分级实施指南

这篇文档是一份关于健康医疗大数据安全管控分类分级实施指南的文档。该指南的主要内容包括数据分类、数据分级、数据开放形式、数据对外开放分级管控、数据模糊化与标签化、数据对外开放典型场景、数据内部分级安全管控和IS&ITS管理手册等内容。 具体来说,该指南…...

Spring MVC 数据绑定利器:深入理解 @InitBinder

在使用 Spring MVC 开发 Web 应用时,我们经常需要处理从 HTTP 请求(如 URL 参数、表单数据)到 Controller 方法参数的自动转换。这就是 Spring 的数据绑定 (Data Binding) 机制。虽然 Spring 提供了很多默认的类型转换器(比如字符…...

【HTTP/2:信息高速公路的革命】

HTTP/2:信息高速公路的革命 想象一下,如果说HTTP/1.1是一条繁忙的双向马路,那么HTTP/2就是一座现代化的高速公路网络系统,彻底改变了数据传输的方式。让我们通过生动的比喻和图表,深入了解这场网络通信的革命。 HTTP…...

PMIC PCA9450 硬件原理全解析:为 i.MX 8M 平台供电的“大脑”

在嵌入式 Linux 系统中,电源设计是构建稳定系统的基础。PCA9450 是 NXP 推出的一款高度集成的 电源管理芯片(PMIC),专为 i.MX 8M 系列处理器设计。它不仅提供多路电压输出,还具备可编程启动顺序、动态电压调节、低功耗…...

【计算机视觉】CV实战项目 - 深入解析基于HOG+SVM的行人检测系统:Pedestrian Detection

深入解析基于HOGSVM的行人检测系统:从理论到实践 技术核心:HOGSVM检测框架HOG特征原理SVM分类器 项目架构与数据准备INRIA Person数据集目录结构 实战指南:从零构建检测系统环境配置完整训练流程检测应用 关键技术问题与解决方案1. 难例挖掘不…...

巴西kwai短视频推广旅游广告获客营销策略

巴西kwai短视频平台作为一种新兴的推广渠道,可以为旅游广告带来新的营销机遇。以下是一些针对利用kwai短视频平台推广旅游广告的获客营销策略: 制作吸引人的内容:在kwai平台上发布具有吸引力的短视频内容,包括美丽的风景、当地文化…...

智慧医疗领域TMI期刊2025年3月研究热点解析

本推文对2025年3月《IEEE Transactions on Medical Imaging》(TMI)期刊论文的研究热点进行了深入分析。本期TMI涵盖了多模态图像融合、深度学习在医学诊断中的应用、三维重建与分割、图像引导治疗等关键方向,呈现出智慧医疗与人工智能深度融合…...

系统思考:看清问题背后的结构

组织的挑战,往往不是因为不努力,而是“看不清” 结束了为期两天系统思考课程的第一天,被学员的全情投入深深打动。我们用系统结构图,一步步揭示那些表面看起来“习以为常”的问题: 什么原因跨部门协作总是磕磕绊绊&am…...

计算机组成原理实验(1) 算术逻辑运算单元实验

实验一 算术逻辑运算单元实验 一、实验目的 1、掌握简单运算器的数据传输方式 2、掌握74LS181的功能和应用 二、实验内容 1、不带进位位逻辑或运算实验 2、不带进位位加法运算实验 3、实验指导书2.15实验思考 三、实验步骤和结果 实验内容一:不带进位…...

网络安全概述:定义、重要性与发展历程

网络安全概述:定义、重要性与发展历程 在互联网深度融入生活与工作的今天,网络安全已成为不可忽视的关键领域。从个人隐私泄露到企业数据失窃,再到国家关键基础设施遭受攻击,网络安全事件频发,深刻影响着个人、组织乃…...

应力腐蚀环功能及指标

西安力创(LETRY)应力腐蚀环广泛应用于高品质材料的生产检测和研究中。在H2S 作用下准确运用应力环测试可获取石油勘探,航天航空,焊接密封,海运船舶,食品加工等各类材料在各种酸,碱腐蚀环境的腐蚀…...

【多目标进化算法】常见多目标进化算法一览

算法全称核心特点备注NSGA-IINon-dominated Sorting Genetic Algorithm II非支配排序 拥挤度最经典,应用最广NSGA-IIINon-dominated Sorting Genetic Algorithm III支撑向量引导,适合高维(3目标以上)NSGA-II 的高维扩展版MOEA/DM…...

【2025 最新前沿 MCP 教程 01】模型上下文协议:AI 领域的 USB-C

文章目录 1. MCP 来了2. 什么是 MCP?为何它是颠覆性创新?M N 问题:解开 AI 集成乱麻 3. 采用 MCP 的核心优势:普适性价值MCP 与传统 API 集成的对比概览 4. 未来的路 1. MCP 来了 没想到,2025 年的每一天都在上演 「…...

抖音集团电商流量实时数仓建设实践

摘要:本文整理自抖音集团电商数据工程师姚遥老师在 Flink Forward Asia 2024 分论坛中的分享。内容主要分为五个部分: 1、业务和挑战 2、电商流量建模架构 3、电商流量流批一体 4、大流量任务调优 5、总结和展望 01.业务和挑战 第一部分给大家介绍一下流…...

redis客户端库redis++在嵌入式Linux下的交叉编译及使用

在开发过程中,我们经常会遇到需要在嵌入式Linux系统上与Redis进行交互的需求。因此选择一个适合的Redis客户端库就显得尤为重要。下面介绍下c中有名的redis-plus-plus(redis)三方库在嵌入式linux下的交叉编译及使用。该库底层是基于hiredis的…...

5.3 Dify:低代码平台,适用于企业快速部署合规AI应用

Dify作为一款开源低代码平台,已成为企业快速构建和部署合规AI应用的首选工具。Dify通过整合后端即服务(Backend-as-a-Service, BaaS)、大型语言模型操作(LLMOps)以及直观的视觉化界面,显著降低了AI应用开发…...

什么是可重入锁ReentrantLock?

大家好,我是锋哥。今天分享关于【什么是可重入锁ReentrantLock?】面试题。希望对大家有帮助; 什么是可重入锁ReentrantLock? ReentrantLock 是 Java 中的一个锁实现,它是 java.util.concurrent.locks 包中的一部分,主要用于提供…...

【Java学习日记26】:方法的重载

一、方法重载核心概念 方法重载(Overload):指在同一个类中定义多个同名方法,但这些方法的参数列表必须不同。重载的目的是让同一功能的方法能处理不同类型或数量的参数,提高代码复用性。 二、判断是否构成重载的规则 …...

分层设计数据仓库的架构和设计高效数据库系统的方法

结合你所有的知识和技术,设计一套高效的数据仓库的分层架构说明每一层分层的用途以及为什么要这么设计,有什么优势?再从数据建模和其它的角度详细论述如何设计出一个高性能的数据仓库系统? 高效数据仓库分层架构设计 分层架构及…...

铃木一郎女儿是奥运会选手吗·棒球1号位

铃木一朗(Ichiro Suzuki) 铃木一朗职业生涯时间线 1973年出生于日本爱知县名古屋市。1992年以选秀第四顺位加入日本职棒(NPB)欧力士蓝浪队,开启职业棒球生涯。 1994-2000年 连续7年获得NPB太平洋联盟打击王&#xff…...

ORB-SLAM3核心模块、数据结构和线程交互方面解析

ORB-SLAM3作为当前最先进的视觉SLAM系统之一,其代码架构设计体现了高度模块化和多线程协同的特点。以下结合代码实现和系统原理,从核心模块、数据结构和线程交互三个维度展开详细解析: 一、核心架构模块 1. 线程划分 ORB-SLAM3采用多线程架构,主要包含以下核心线程: Tra…...

小刚说C语言刷题——1565成绩(score)

1.题目描述 牛牛最近学习了 C 入门课程,这门课程的总成绩计算方法是: 总成绩作业成绩 20% 小测成绩 30% 期末考试成绩 50%。 牛牛想知道,这门课程自己最终能得到多少分。 输入 三个非负整数 A、B、C ,分别表示牛牛的作业成…...

查找函数【C++】

二分查找函数 lower_bound(起始地址, 末尾地址, target):查找第一个大于等于target目标值的位置 upper_bound(起始地址, 末尾地址, target):查找第一个大于target目标值的位置 binary_search(起始地址, 末尾地址, target):查找target是否存在…...

利用车联网中的 V2V 通信技术传播公平的紧急信息

与移动自组织网络 (MANET) 相比,车载自组织网络 (VANET) 的节点移动速度更快。网络连接的节点可以在自身内部或其他基础设施之间交换安全或非安全消息,例如车对车 (V2V) 或车对万物 (V2X)。在车载通信中,紧急消息对于安全至关重要,必须分发给所有节点,以提醒它们注意潜在问…...

Semantic Kernel也能充当MCP Client

背景 笔者之前,分别写过两篇关于Semantic Kernel(下简称SK)相关的博客,最近模型上下文协议(下称MCP)大火,实际上了解过SK的小伙伴,一看到 MCP的一些具体呈现,会发现&…...

assertEquals()

assertEquals() 是 JUnit 框架中用于进行断言操作的一个非常常用的方法,其主要目的是验证两个值是否相等。如果两个值不相等,测试就会失败,JUnit 会给出相应的错误信息,提示开发者测试未通过。下面为你详细介绍: 方法…...

【ESP32S3】 下载时遇到 libusb_open() failed 解决方案

之前写过一篇 《VSCode 开发环境搭建》 的文章,很多小伙伴反馈说在下载固件或者配置的时候会报错,提示大多是 libusb_open() failed ...... : 这其实是由于 USB 驱动不正确导致的,准确来说应该是与 ESP-IDF 中内置的 OpenOCD 需要…...

【Pandas】pandas DataFrame rsub

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象(如 DataFrame、Series 或标量)的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...