我的Fortran-Code的结构如下:
有两个文件夹(包含多个子目录)
1.
/home/user/general_part
其中包含一些非常通用的文件,应该在程序的多个版本中使用。 文件:(带相对路径)
- mainsubdir / main.F
- subdir1 / file1.F
- subdir1 / headerfile1.h
2.
/home/user/special_part/special_case1
文件所在的位置依赖于案例。
文件:(带相对路径)
- subdir2 / file2.F
- subdir2 / headerfile2.h
- subdir3 / file3.F
我如何组织构建过程?
我应该在每个目录中使用多个makefile吗?对象文件应该放在哪里(尤其是常规文件中的文件)?
我的目标是我可以从目录中启动构建过程:
/home/user/special_part/special_case
使用简单的 make 或一个小脚本。
所以最后我应该可以使用1中的常规文件和位于的几个特殊文件来构建一个程序:
/home/user/special_part/special_case1
/home/user/special_part/special_case2
...
答案 0 :(得分:2)
没有人回答的原因可能是因为这个问题太笼统了。更加详细一些。
说出类似的话:“这是我想要构建的程序,这是我的makefile,请批评我的makefile”。
您可以按照自己喜欢的方式进行组织,只要它符合逻辑且一致。我在
中提出了一些初学者指南https://stackoverflow.com/questions/19816058/makefile-fibonacci/19821801#19821801
没有。 Make是真正的设计,并且使用单个makefile工作得最好。您可以在每个目录中包含相关的makefile 片段,这些片段包含在主makefile中。每个子目录中都没有完整的makefile。谷歌的经典论文“递归使被认为有害”,看看为什么会如此。
您可以将结果放在任何您想要的位置,有些人可以将结果与源,一些放在一个单独的目录中。只需以一些逻辑和一致的方式放置结果。中间文件也是如此,例如目标文件。