# 声学工具箱(Acoustics Toolbox)Windows系统编译文档
1. 前言
1.1 文档目的
本文档旨在指导用户在Windows系统上编译声学工具箱(Acoustics Toolbox),包括环境搭建、编译配置、执行步骤以及常见问题的解决方案。
1.2 声学工具箱简介
声学工具箱是一套用于海洋声学研究的专业软件,包含多个模块:
- Bellhop:射线追踪模型
- Kraken:简正波模型
- KrakenField:声场计算
- Scooter:快速声场计算
- misc:辅助工具
- tslib:时间序列库
1.3 编译环境要求
- Windows 7/8/10/11 操作系统
- MinGW(Minimalist GNU for Windows)编译器套件
- 至少2GB内存
- 至少1GB可用磁盘空间
2. 环境准备
2.1 操作系统要求
- Windows 7 及以上版本
- 64位系统(推荐)
2.2 硬件要求
- CPU:至少双核处理器
- 内存:至少2GB
- 磁盘空间:至少1GB可用空间
2.3 磁盘空间需求
- MinGW安装:约500MB
- 源代码:约200MB
- 编译输出:约100MB
- 总计:约800MB
3. MinGW环境安装
3.1 下载MinGW安装管理器
- 访问 MinGW官网
- 点击 "Downloads" 链接
- 下载 "mingw-get-setup.exe"
3.2 安装必要的组件
- 运行 "mingw-get-setup.exe"
- 选择安装目录(建议默认路径
C:\MinGW) - 点击 "Continue" 完成基本安装
- 运行 "MinGW Installation Manager"
- 在左侧列表中选择以下组件:
mingw32-base(基础GCC工具链)mingw32-gcc-fortran(Fortran编译器)mingw32-make(GNU Make工具)
- 点击 "Installation" -> "Apply Changes" 进行安装
3.3 配置环境变量
- 右键点击 "此电脑" -> "属性" -> "高级系统设置" -> "环境变量"
- 在 "系统变量" 中找到 "Path" 变量,点击 "编辑"
- 点击 "新建",添加路径
C:\MinGW\bin(如果安装在其他位置,请使用实际路径) - 点击 "确定" 保存更改
3.4 验证安装
- 关闭所有命令提示符窗口
- 重新打开命令提示符
- 运行以下命令检查安装是否成功:
gcc --version(检查GCC版本)gfortran --version(检查Fortran编译器版本)mingw32-make --version(检查Make工具版本)
3.5 重命名
重要:为了方便使用make,将mingw32-make.exe重命名为make.exe。
4. 项目准备
4.1 获取声学工具箱源代码
- 获取声学工具箱源代码
官网上获取的代码可能编译不通过,推荐使用整编后的代码 OpenOcean/AcousticToolboxWinCompile
- 解压到本地目录,例如
e:\4.0Dr\2026-04\at-win-cp\atWin10_2020_11_4
4.2 创建bin目录
在项目根目录创建bin目录,用于存放编译后的可执行文件:
mkdir bin
4.3 目录结构说明
项目目录结构如下:
misc/:辅助工具tslib/:时间序列库Bellhop/:射线追踪模型Kraken/:简正波模型KrakenField/:声场计算Scooter/:快速声场计算Krakel/:需要LAPACK库的模块(默认注释)bin/:编译输出目录Makefile:主Makefile
5. Makefile配置
5.1 主Makefile配置
5.1.1 选择编译器(gfortran)
- 打开
Makefile文件 - 确保以下行未被注释:
export FC=gfortran - 确保其他编译器(如ifort)的配置被注释
5.1.2 设置编译选项
- 选择合适的编译选项,对于Windows系统,推荐使用:
export FFLAGS= -march=native -Bstatic -Waliasing -Wampersand -Wsurprising -Wintrinsics-std -Wno-tabs -Wintrinsic-shadow -Wline-truncation -std=gnu -O2 -ffast-math -funroll-all-loops -fomit-frame-pointer -mtune=native - 注意:Windows系统下
-O2是推荐的优化级别,-O3可能会导致问题
5.1.3 Windows兼容性格式修改
- 将Unix风格的命令格式改为Windows兼容格式:
- 将
(cd misc; make -k all)改为cd misc && make -k all - 将
find . -name '*.mod' -exec rm -r {} +改为del /s /q *.mod
- 将
5.2 子目录Makefile配置
5.2.1 misc目录
- 检查并修改
misc/Makefile,确保编译选项正确 - 确保输出路径指向
../bin目录
5.2.2 tslib目录
- 检查并修改
tslib/Makefile,确保编译选项正确 - 确保输出路径指向
../bin目录
5.2.3 Bellhop目录
- 检查并修改
Bellhop/Makefile,确保编译选项正确 - 将Unix风格的
for循环改为Windows兼容格式:install: all @echo "Bellhop built" @echo "*************" @echo " " @echo "----- Installing bellhop.exe" @copy bellhop.exe ..\bin @echo "----- Installing bellhop3d.exe" @copy bellhop3d.exe ..\bin
5.2.4 Kraken目录
- 检查并修改
Kraken/Makefile,确保编译选项正确 - 确保输出路径指向
../bin目录
5.2.5 KrakenField目录
- 检查并修改
KrakenField/Makefile,确保编译选项正确 - 确保输出路径指向
../bin目录
5.2.6 Scooter目录
- 检查并修改
Scooter/Makefile,确保编译选项正确 - 确保输出路径指向
../bin目录
6. 编译步骤
6.1 清理之前的编译文件
- 打开命令提示符,导航到项目目录:
cd e:\4.0Dr\2026-04\at-win-cp\atWin10_2020_11_4 - 执行清理命令:
make clean
6.2 执行编译
- 运行编译命令:
make - 等待编译完成,观察是否有错误信息
6.3 安装到bin目录
- 执行安装命令:
make install - 检查bin目录是否生成了可执行文件
7. 常见问题与解决方案
7.1 "make不是内部或外部命令"错误
- 问题原因:MinGW未安装或环境变量未配置
- 解决方案:
- 安装MinGW并确保选择了
mingw32-make组件 - 将
C:\MinGW\bin添加到系统环境变量PATH - 关闭并重新打开命令提示符
- 安装MinGW并确保选择了
7.2 "mingw32-make命令格式错误"错误
- 问题原因:Makefile中使用了Unix风格的命令格式
- 解决方案:
- 将
(cd misc; make -k all)改为cd misc && make -k all - 确保所有命令使用Windows兼容格式
- 将
7.3 "Modula-2 compiler not installed"错误
- 问题原因:gfortran误解了
*.mod通配符,以为是Modula-2源文件 - 解决方案:
- 检查Makefile中的通配符使用方式
- 确保编译命令格式正确,避免直接将
*.mod作为gfortran的参数
7.4 "for循环语法错误"错误
- 问题原因:在Makefile中使用了Windows命令提示符的
for循环语法 - 解决方案:
- 在Makefile中,将
%f改为%%f(因为%在Makefile中是特殊字符) - 例如:
for /r . %%f in (*.exe) do copy "%%f" bin
- 在Makefile中,将
7.5 编译选项问题
7.5.1 -O3优化级别问题
- 问题原因:Windows系统下
-O3优化级别可能导致编译错误 - 解决方案:使用
-O2优化级别
7.5.2 静态链接问题
- 问题原因:动态链接库依赖问题
- 解决方案:使用
-Bstatic选项进行静态链接
8. 验证编译结果
8.1 检查bin目录内容
- 列出bin目录中的文件:
dir bin - 确认生成了以下可执行文件:
- bellhop.exe
- bellhop3d.exe
- kraken.exe
- krakenc.exe
- field.exe
- field3d.exe
- scooter.exe
8.2 验证可执行文件
- 尝试运行其中一个可执行文件:
bin\bellhop.exe - 检查是否正常启动,无错误信息
8.3 运行测试程序
- 查看项目中的测试目录:
dir tests - 运行测试程序验证编译结果
9. 编译选项详解
9.1 编译器选项
-march=native:使用本地CPU架构优化-Bstatic:使用静态链接-Wall:显示所有警告-std=gnu:使用GNU标准
9.2 优化级别
-O0:无优化-O1:基本优化-O2:推荐优化级别(Windows系统)-O3:最高优化级别(可能在Windows上有问题)
9.3 架构特定选项
-msse3:启用SSE3指令集-mtune=native:针对本地CPU进行调优
10. 附录
10.1 命令参考
| 命令 | 描述 |
|---|---|
make clean | 清理编译文件 |
make | 编译项目 |
make install | 安装到bin目录 |
gfortran --version | 检查gfortran版本 |
mingw32-make --version | 检查make版本 |
10.2 相关资源链接
10.3 联系方式
- 如有编译问题,请参考官方文档或社区论坛
- 可以在GitHub上提交issue或PR
本文档基于Windows 10系统测试,其他Windows版本可能需要适当调整。