在Visual studio 2008环境中链接混合FORTRAN和c++

Linking mixed FORTRAN and C++ in the Visual studio 2008 environment

本文关键字:混合 FORTRAN c++ 链接 Visual studio 2008 环境      更新时间:2023-10-16

我正在使用ISO_C_Binding模块从FORTAN调用c++函数。我可以编译和链接Fortran和c++文件使用mingwg++和gfortran命令行选项使用命令序列

gfortran -c main.f90
g++ -c print_hi.cpp

用于编译和链接,我可以使用gfortran选项并将c++标准库包括为

gfortran main.o print_hi.o -o main -lstdc++

,它工作得很好。现在我的问题是如何在视觉工作室环境中做到同样的事情。在简单的C语言中,我们只包含print_hi。但如果我只包含这个c++文件(print_hi.o),它会给出如下错误:

 Error LNK2010: unresolved external symbol _ZSt4cout referenced in function _print_hi

所以我想我需要在我的FORTRAN项目中给出c++库的路径,就像我们在命令行MINGW情况下所做的那样,但我不知道如何做到这一点。

PS:我使用的是windows Vista,在visual studio 2008中使用intell visual fortran编译器专业版11.1,在同一台计算机上使用visual studio 2010中的c++。

这篇MSDN文章可以帮助你:混合语言问题和c++混合语言编程

进入项目属性->链接器->输入->附加依赖项,并在那里输入库名称。

确保静态地使用gfortran运行时库进行构建试试gfortran -static-libgfortran (-c or -S) -f2003 yourforsource。法郎。你应该得到一个扩展名为。o的目标文件。

然后把目标文件带到你的MS编译器。编译你的C/c++源代码到一个目标文件。最后,使用两个目标文件一起进行正常构建。使用命令行编译器执行此操作以确保它能够工作。