c++代码中调用由fortran编译的静态库函数在windows(编译器vs2012+intel visual fortran 2013)下,可以成功调用,运行结果正确。 
但是移植到linux(编译器c++ f95)下时,在链接时找不到静态库中的函数。 
 
因为fortran代码比较老,所以最好不要对fortran源码进行改动。 
附件为测试代码 
 
Linking CXX executable ../bin/Main 
CMakeFiles/Main.dir/main.cpp.o: In function `main': 
main.cpp:(.text+0x3e): undefined reference to `ADD' 
[C++] syntaxhighlighter_viewsource syntaxhighlighter_copycode #include <cstdio>
extern "C" void ADD(double *, double *, double *);
int main(int argc, char** argv)
{
	double a=10;
	double b=1;
	double sum;
	ADD(&a,&b,&sum);
	printf("a + b = %lf\n", sum);
	return 0;
} 
 
 
[Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode 
      subroutine add(a, b, sum)
      real(8) a
      real(8) b
      real(8) sum
      
      sum = a + b
      end
 
 
 
 
 
 
 |