| 
 | 
 
   我想将C++和Fortron混合编程(主要是C++调用Fortran)的代码包编译成一个dll,文件结构如下            ampcormodule.cpp 
            ampcormodule.h 
            ampcor.F 
            ampcorAllocateDeallocate.F 
 
 
   已经成功用WinGW配的gfortran和g++分别将.cpp和.F文件做成了.o文件 
   接下来将他们编译成dll,  命令行语句为:gfortran ampcor.o -shared -fPIC -o ampcor5.dll    这时候出现问题:无论是单独编译.cpp文件对应的.o文件( ampcormodule.o),还是编译.F文件对应的.o文件( ampcor.o),都会报类似如下的错: 
 
   \Local\Temp\ccy2IZmN.o:ampcorGetState.f:(.text+0x40): undefined reference to `__ampcorstate_MOD_i_centerxiarr 
   \Local\Temp\ccy2IZmN.o:ampcorGetState.f:(.text+0x96): undefined reference to `__ampcorstate_MOD_r_shftxoscarr 
 
  ampcormodule.o:ampcormodule.cpp:(.text+0x1889): undefined reference to `getCov3_f' 
  ampcormodule.cpp:(.text+0x1433): undefined reference to `getSNR_f' 
 
 
 
 
  ps:编译器本身问题应该不大,因为我用简单的helloWorld代码做测试,能成功运行 
       网上查了好久,这个问题大致可以总结为:1、32位和64位对不上   2、找不到对应的库文件 
       我猜我的情况可能是找不到对应的库文件,但具体怎么改我不完全没有头绪,纠结了好久,请各位大佬帮帮忙! 
 
 
 |   
 
 
 
 |