gfortran包含路径-除了传递多个-I选项之外,还有其他选择吗?

大卫·加德纳

我有一些使用包含模块的Fortran代码,并且我想知道哪些环境变量实际上可以用来设置包含路径。

为了测试这一点,我一直使用NAG示例代码之一。

这有效:

$ gfortran e04ucfe.f90 -lnag_nag -I/opt/NAG/fll6a23dfl/nag_interface_blocks

这不起作用:

$ export CPATH=/opt/NAG/fll6a23dfl/nag_interface_blocks
$ gfortran e04ucfe.f90 -lnag_nag
e04ucfe.f90:10.37:

       USE nag_library, ONLY : nag_wp
                                     1
Fatal Error: Can't open module file 'nag_library.mod' for reading at (1): No such file or directory

但是,GCC / GFortran文档指出:

目前,gfortran编译器不使用任何环境变量来控制影响gcc操作的环境变量。

(请参阅https://gcc.gnu.org/onlinedocs/gfortran/Environment-Variables.htmlhttps://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html#Environment-Variables

我已经尝试ltrace过-gfortran运行,可以看到它查看其他环境变量(例如常规PATH),但没有看到CPATH

我可以这样解决:

gfortran e04ucfe.f90 -lnag_nag `echo -I$CPATH | sed -e 's/:/ -I/'`

...但这为什么有必要?CPATH在gcc上可以正常工作,包括C / C ++以外的其他语言,那么为什么在gfortran上不行?有什么我可以成功使用gfortran的gcc与CPATH取得相同效果的,从而避免了必须传递多个-I参数的情况吗?

旁注:LIBRARY_PATH以类似的方式可以很好地代替-L/path/to/libsgfortran命令行上的。

阿毛雷亚

据我所知gfortran不支持这一点,这很烦人。但是有可能解决它。如果命名以下脚本gfortran并将其放在$PATH要搜索的脚本中的目录之前,则该目录中将包含实数gfortran,那么您将具有所需的行为,并且将其$CPATH透明地扩展为-I参数:

#!/bin/bash
/path/to/gfortran $(for i in ${CPATH//:/ }; do echo -I"$i"; done) "$@"

请记住将其标记为可执行文件。例如,如果我现在$PATH是,/home/amaurea/local/bin:/usr/local/bin:/usr/bin:/bin并且gfortran住在/usr/local/bin,则将其设置为

$ cd /home/amaurea/local/bin
$ cat <<HERE > gfortran
#!/bin/bash
/usr/bin/gfortran $(for i in ${CPATH//:/ }; do echo -I"$i"; done) "$@"
HERE
$ chmod a+x gfortran

另外,您可以将其公式化为shell别名,但是这样的灵活性较差并且在很多情况下都无法使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

除了在每个模型文件中包含require('mongoose')之外,还有其他更好的方法吗?

来自分类Dev

除了在每个模型文件中包含require('mongoose')之外,还有其他更好的方法吗?

来自分类Dev

除了<span>之外,还有其他选择吗?

来自分类Dev

除了将范围传递给用户定义的函数之外,还有其他选择吗?

来自分类Dev

除了使用表格之外,还有其他方法可以在 EXCEL VBA 中存储文件夹路径吗?

来自分类Dev

除了注入温莎城堡类型的工厂之外,还有其他选择吗?

来自分类Dev

除了在SSIS中创建Parent Package变量之外,还有其他选择吗?

来自分类Dev

除了注入温莎城堡类型的工厂之外,还有其他选择吗?

来自分类Dev

除了可以返回Maybe的read之外,还有其他选择吗?

来自分类Dev

除了 tsc 之外,还有其他 TypeScript 工具吗?

来自分类Dev

除了Flutter中的ffmpeg之外,还有其他其他选项可用于视频编辑吗?

来自分类Dev

除了在所有浏览器中均可使用的Seamless属性之外,还有其他选择吗?

来自分类Dev

除了MythTV之外,还有其他选择可以观看具有远程访问权限的视频文件吗?

来自分类Dev

除了flutter_svg,还有其他选择吗?

来自分类Dev

除了SeleniumRC之外,还有没有其他好的工具可以提取包含JavaScript后绘制内容的网页?

来自分类Dev

除了NTFS之外,还有其他更好的选择可以在Ubuntu和Windows 7之间共享HD吗?

来自分类Dev

除了将用户数据存储在数据库中之外,还有其他选择吗?

来自分类Dev

Blob属性-除了通过ForEach循环之外,还有其他更好的方法可以从此集合中进行选择吗?

来自分类Dev

除了使用NSTimer通过AVAudioPlayer显示音频文件的剩余时间之外,还有其他选择吗?

来自分类Dev

除了NTFS之外,还有其他更好的选择可以在Ubuntu和Windows 7之间共享HD吗?

来自分类Dev

除了正则表达式电子邮件验证之外,还有其他选择吗?

来自分类Dev

除了将MySQL数据库用于类似这样的简单任务之外,还有其他选择吗?

来自分类Dev

除了作为匿名方法之外,还有其他有用的替代用途吗?

来自分类Dev

除了模拟持久任务之外,Thread.Sleep()还有其他用途吗?

来自分类Dev

除了Caledon之外,还有其他基于Haskell的HOL编程语言吗?

来自分类Dev

除了Javadoc之外,JDK类还有其他规范吗?

来自分类Dev

除了这些之外,android中还有其他传感器吗?

来自分类Dev

除了递归调用本身之外,命名被分配的函数还有其他用途吗?

来自分类Dev

除了SELinux和AppArmor之外,还有其他LSM(Linux安全模块)吗?

Related 相关文章

  1. 1

    除了在每个模型文件中包含require('mongoose')之外,还有其他更好的方法吗?

  2. 2

    除了在每个模型文件中包含require('mongoose')之外,还有其他更好的方法吗?

  3. 3

    除了<span>之外,还有其他选择吗?

  4. 4

    除了将范围传递给用户定义的函数之外,还有其他选择吗?

  5. 5

    除了使用表格之外,还有其他方法可以在 EXCEL VBA 中存储文件夹路径吗?

  6. 6

    除了注入温莎城堡类型的工厂之外,还有其他选择吗?

  7. 7

    除了在SSIS中创建Parent Package变量之外,还有其他选择吗?

  8. 8

    除了注入温莎城堡类型的工厂之外,还有其他选择吗?

  9. 9

    除了可以返回Maybe的read之外,还有其他选择吗?

  10. 10

    除了 tsc 之外,还有其他 TypeScript 工具吗?

  11. 11

    除了Flutter中的ffmpeg之外,还有其他其他选项可用于视频编辑吗?

  12. 12

    除了在所有浏览器中均可使用的Seamless属性之外,还有其他选择吗?

  13. 13

    除了MythTV之外,还有其他选择可以观看具有远程访问权限的视频文件吗?

  14. 14

    除了flutter_svg,还有其他选择吗?

  15. 15

    除了SeleniumRC之外,还有没有其他好的工具可以提取包含JavaScript后绘制内容的网页?

  16. 16

    除了NTFS之外,还有其他更好的选择可以在Ubuntu和Windows 7之间共享HD吗?

  17. 17

    除了将用户数据存储在数据库中之外,还有其他选择吗?

  18. 18

    Blob属性-除了通过ForEach循环之外,还有其他更好的方法可以从此集合中进行选择吗?

  19. 19

    除了使用NSTimer通过AVAudioPlayer显示音频文件的剩余时间之外,还有其他选择吗?

  20. 20

    除了NTFS之外,还有其他更好的选择可以在Ubuntu和Windows 7之间共享HD吗?

  21. 21

    除了正则表达式电子邮件验证之外,还有其他选择吗?

  22. 22

    除了将MySQL数据库用于类似这样的简单任务之外,还有其他选择吗?

  23. 23

    除了作为匿名方法之外,还有其他有用的替代用途吗?

  24. 24

    除了模拟持久任务之外,Thread.Sleep()还有其他用途吗?

  25. 25

    除了Caledon之外,还有其他基于Haskell的HOL编程语言吗?

  26. 26

    除了Javadoc之外,JDK类还有其他规范吗?

  27. 27

    除了这些之外,android中还有其他传感器吗?

  28. 28

    除了递归调用本身之外,命名被分配的函数还有其他用途吗?

  29. 29

    除了SELinux和AppArmor之外,还有其他LSM(Linux安全模块)吗?

热门标签

归档