我正在尝试使用CodeBlocks作为我的IDE和GNU Fortran编译器作为我的编译器来运行fengdemo.f。它运行include include,但它无法构建对matlab引擎的任何方法调用
C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|51|undefined reference to `engopen_'|
C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|58|undefined reference to `mxcreatedoublematrix730_'|
C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|59|undefined reference to `mxgetpr_'|
C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|59|undefined reference to `mxcopyreal8toptr730_'|
C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|64|undefined reference to `engputvariable_'|
等...
我尝试在线搜索,但无法在Mathworks或其他任何地方找到任何有用的信息。我也得到了c ++引擎演示,所以我的路径变量和其他这样的东西是正确的。
我根本不习惯使用Fortran,所以任何帮助都会受到赞赏。
PS。 fengdemo.f在extern / examples / eng_mat下,所以我没有发布任何代码。
问题:没有VFC甚至可能吗?如果是这样,有人能指出我正确的方向吗?
答案 0 :(得分:1)
你也可以“手工”做一些事情。在Fortran中,您可以使用“system”子例程来运行系统命令。 例如,如果您在Linux环境和Fortran代码中,则包含命令
call system("firefox http://stackoverflow.com/")
fortran程序将打开一个firefox选项卡/窗口到StackOverflow。
我也可以在读取终端时使用MATLAB(我没有安装它)。例如,您可以调用以下命令生成图表。
matlab -nosplash -nodesktop -r "ezplot('x')"
因此,您可以创建一个matlab函数并通过fortran调用它。 Walter Roberson在MATLAB Answers上写道,你可以使用:
matlab -r 'myfunction(argument1,argument2)';
或更安全:
matlab -r 'try myfunction(argument1,argument2); catch; end; quit'
您还可以使用Fortran创建输入文件并在MATLAB中使用它。这不是一个自动解决方案,但它不需要特殊的编译器。但它依赖于平台。
答案 1 :(得分:0)
如果你在Windows上,MATLAB支持的唯一Fortran编译器是Intel Visual Fortran Composer。 GNU Fortran仅在Linux或Mac上受支持。
http://www.mathworks.co.uk/support/compilers/R2013a/index.html