主题:[求助]各位大神帮忙看看这个怎么编译
sagisolo
[专家分:0] 发布于 2011-04-23 17:20:00
老板给的程序,文件夹里只有代码和头文件什么的,不知道怎么编译这个了,readme文件中这样说的,但是我还是不会,求各位大神指点,不胜感激!
--------------------------------------------------------------------------------
How to compile
--------------------------------------------------------------------------------
Edit first the flags (SRC, EXEC, O, LD, FC, FFLAGS, and LDFLAGS) in "Makefile"
as appropriate for your computer, compiler and/or operating system. There are
examples of settings for GNU g77, IBM, SGI and SUN f77 compilers. Type "make"
at the prompt to compile the program.
完整的readme.txt在附件中
第一次发帖不会上传,修改后附件已添加进来了[em2]
最后更新于:2011-04-23 21:16:00
回复列表 (共32个回复)
21 楼
sagisolo [专家分:0] 发布于 2011-04-24 15:00:00
[quote]关于make,请百度一下“跟我一起写Makefile”,但是这样的话你最好用Linux环境。
至于项目,尝试解决一下那些错误。[/quote]
谢谢,昨晚修改了一下程序就跑起来了。
虽然这次对Makefile文件什么的还是没有搞清楚,但是收获很大
22 楼
lh_wp [专家分:100] 发布于 2011-04-24 15:37:00
[quote]好像你说了那么多,没有什么实质性内容嘛。
最后那个编译器扩展我也不是作为重点来说的,似乎你每句都提。我的意思是如何在一个代码里写出F90/F2003并轨的标准来(只是作为一种可能性)。
时间问题总是被作为托辞,为何不正视现状呢?是环境依你而变化,还是你为了外界环境而做出更改?
同时,我也不知道你为什么认为Fortran调用系统api为什么就是耍酷,这样你会遭到臭石头GG的BS。
实现功能很好啊,但是实现更好的功能不更好吗?
我想说,不要以自己的认知水平作为智慧的极限。你说的,我也没说错误,只是说不太合适,你为啥总是全盘否定我的说法呢?[/quote]
呵呵,光从分看我就没有你厉害,你是专家,我哪敢以我这么点认知水平班门弄斧,是是非非,各位高人看了都知道。我没有水平和你继续讨论,还是撤退为好,况且我本意也是帮别人解决问题的,看楼上回复,已经搞定。
学识不够,实在惭愧,恐让各位路过的大侠见笑了。
23 楼
cgl_lgs [专家分:21040] 发布于 2011-04-25 14:08:00
呵呵,lh_wp兄大可不必如此激动:)
董兄是gfortran大牛:)也涉及了很多领域(包括人肉,哈哈)。他说的确实是有道理的,只是您还没有接触到那些让人头疼的东东(可能):)
就说一个非常简单的例子吧:
IVF与gfortran他们各自实现的f2003的子集就不完全一样,如果你有一个代码又需要在这两种编译器上跑,那你会怎样做呢?放弃简洁/高效的新特性而改用f90特性?
至于使用系统api或是扩展库神马的我就不说啦:)因为你们已经讨论过了嘛,lh_wp兄不妨心情好些再回头看看,董兄确实说的是有一定道理滴:)
24 楼
yeg001 [专家分:14390] 发布于 2011-04-25 17:31:00
其实大家来到这里, 不同的人侧重点不同, 也没必要较真.
好比我比较关心移植性, 高性能. 一些新语法标准虽然也关心但至今还很少用上, 看完了又忘记.
平心静气摆出自己的观点就好了.
25 楼
cgl_lgs [专家分:21040] 发布于 2011-04-25 18:01:00
[quote]其实大家来到这里, 不同的人侧重点不同, 也没必要较真.
好比我比较关心移植性, 高性能. 一些新语法标准虽然也关心但至今还很少用上, 看完了又忘记.
平心静气摆出自己的观点就好了.[/quote]
嘿嘿,估计因为咱都还年轻,火力壮:)
26 楼
lh_wp [专家分:100] 发布于 2011-04-25 18:38:00
呵呵,其实大家误解了,写那些话的时候一般激动吧,^o^,谢谢楼上两位。
可能因为解决程序中C++部分的平台移植伤透了脑筋,观念中一直认为fortran可以很轻易解决平台移植,话语中出现了不应该的偏激词语。
27 楼
dongyuanxun [专家分:7180] 发布于 2011-04-25 19:09:00
C++的移植比起C来说还是简单不少,C++标准方面只有thread在Linux和windows上处理不同(对gcc来说,windows下没有实现,我对这个未能实现很纳闷,为什么OpenMP能跨平台实现,作为C++标准的thread反而是Linux实现了Windows下不行,大不了暂时使用pthread来替代好了),但是这个也可以使用boost::thread来替代,也不是什么令人哀叹的事情,而且boost::thread是直接链接的windows本地线程,摆脱了pthread的依赖。C++有大量的第三方跨平台库,要尽量使用,另外注意不要滥用vc的pragma和预编译(只对较高版本的VC来说,VC6的模板处理太差,基本需要重写),那么从vc到linux gcc移植也相对容易,当然,如果用到了大量api,就免不了同义转换,而且有的无法做到替代(比如进程安全级,windows和Linux下是2个不同概念,windows下几乎没有参照函数)。
28 楼
lh_wp [专家分:100] 发布于 2011-04-25 19:37:00
是啊,最终用boost解决了移植问题,不过可惜的是,一直没搞明白为啥win下效率降低的特别严重,后面因为时间问题也没有深究,导致整个移植并不完美。
29 楼
dongyuanxun [专家分:7180] 发布于 2011-04-25 19:57:00
效率降低很多情形有很多,很难解释什么原因,如果和Boost相关,那么就依赖编译器的性能处理,如果是vc的话,生成的代码没有gcc4.5.x之后的代码效率高,但看反汇编情形,vc的比较清晰,gcc的就很凌乱,虽然生成的代码质量高。不过在windows下,在消耗内存上,vc的代码还是最小的。
原来有个测试,在windows上,
在性能测试上,intel大于/等于/小于gcc(不同情形)>vc
在体积测试上,vc<gcc<<intel (C++代码,以Qt库生成为例)
30 楼
lh_wp [专家分:100] 发布于 2011-04-25 20:32:00
确实是不好说,也没时间找原因了,先让他在linux下跑着吧,眼下等有功夫测试下intel编译器倒是个主意,谢谢指点啊
我来回复