编译配置文件夹 Make

Make文件夹是OpenFOAM特有的,里面主要包含两个文件filesoptions

  • files用来指定OpenFOAM顺序进行编译的文件名称以及路径;
  • options用来指定OpenFOAM需要调用的外挂库的路径以及名称;

files文件

newApp.C

EXE = $(FOAM_APPBIN)/newApp
  • Make/files 中必须指定完整的以.C 为后缀的文件列表。
  • Make/files 文件需要指定所编译程序的全路径以及名字(用 *EXE =* 来指定)。标准做法是使用求解器的名字。
  • OpenFOAM 提供了两种可选的路径,一个是标准的路径,编译好的求解器存储在$FOAM_APPBIN 中;另一个是用户自己的路径存储在 $FOAM_USER_APPBIN

options文件

EXE_INC = \
//头文件存放路径
    -I<directoryPath1> \
    -I<directoryPath2> \
    ... \
    -I<directoryPathN>
    
LIB_LIBS = \ 
//链接库文件路径
	-L<libraryPath1> \
	//链接库名称
    -l<library1> \
    -l<library2> \
    ... \
    -l<libraryN>

几点注意事项:

  • 头文件存放路径使用 -I 标识符;库文件路径使用-L 标识符指定,库名称使用-l 标识符指定,并且去掉 lib 前缀以及.so 后缀。
  • 除了最后一行外,每行代码最后都需要使用 \
  • 当库文件不在默认路径$FOAM_LIBBIN下才需要指定库文件路径。
  • 文件夹路径必须正确,否则进行编译时会因为找不到头文件而报错

编译指令: wmake

wmake <optionalArguements> <optionalDirectory>
  • <optionalDirectory>是指被编译程序的文件路径。当程序在自己的路径下进行编译时,该项可以省略;
  • 一般不需要指定参数<optionalArguements>的值,但是在编译类型为 等其他类型而不是可执行目标代码的情况下,需要对其进行指定:
lib	    静态链接库
libso	动态链接库
libo	静态链接目标文件
jar	    JAVA存档文件
exe	    可执行文件(默认)

编译库

和编译求解器不同,当编译库的时候,Make 文件夹内需要做一些更改:

  • files 文件中,EXE = 需要替换为 LIB =,且$FOAM_APPBIN 需要更改为$FOAM_LIBBIN(或者$FOAM_USER_LIBBIN);
  • options 文件中,EXE_LIBS 需要替换为 LIB_LIBS,用来指定编译库的时候需要 链接的库;

当执行 wmake 的时候,他会自动的创建一个 lnInclude 的文件夹,用于包含必要的文件。

移除依赖包文件: wclean

在编译的过程中,wmake 会创建一个依赖包文件,扩展名为.deb(如:newApp.dep)。并在 Make/$WM_OPTIONS 中产生一系列文件。

此后,如果需要修改头文件或者链接库的代码,需要运行 wclean 来删除依赖包:

wclean <optionalArguements> <optionalDirectory>

wmake 相同的是,<optionalDirectory>是被编译程序的文件路径。一般来说,程序在自己的路径下来运行 wclean,可以省略<optionalDirectory>

若对执行 wclean,文件夹 lnInclude 也会被删除。

参考:

  1. https://www.jianguoyun.com/p/Db9X08cQ9s3ZBhjMtpwC
  2. https://www.zybuluo.com/daidezhi/note/385554
  3. OpenFOAM用户指南
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Openwrt中进行编译配置文件,你可以按照以下步骤进行操作: 1. 首先,在Openwrt的源码目录下,创建一个名为"files"的文件夹。你可以使用命令`mkdir files`来创建。 2. 在"files"文件夹下,创建你想要增加的配置文件的路径。比如,如果你想在`/etc/config/`目录下增加一个名为"Helloworld"的文件,你可以使用命令`mkdir -p files/etc/config`来创建相应的路径。 3. 将你的配置文件复制到刚刚创建的路径下。你可以使用命令`cp Helloworld files/etc/config/`来完成复制。 4. 接下来,重新编译Openwrt。你可以使用命令`make V=s`来重新编译。 请注意,以上步骤是在Ubuntu 14 x64环境下进行的,硬件为MT7620A,内存为128M,闪存为32M。如果你的环境和硬件配置不同,可能需要进行相应的调整。此外,你可以参考Openwrt的用户手册和开发者指南来获取更详细的信息和指导。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [openwrt固件编译配置](https://blog.csdn.net/qq_38382148/article/details/78642194)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [OpenWrt 硬件 环境配置编译](https://blog.csdn.net/weifengdq/article/details/103262921)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [编译 openwrt 及初始配置](https://blog.csdn.net/hktkfly6/article/details/122847548)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值