Fortran Coder

标题: 求教:C++调用Fortran静态库链接错误问题 [打印本页]

作者: Atlantis    时间: 2019-9-2 14:06
标题: 求教:C++调用Fortran静态库链接错误问题
本帖最后由 Atlantis 于 2019-9-2 14:05 编辑

求教:C++调用Fortran静态库链接错误问题
环境:Visual studio 2017,Intel@ Parallel Studio XE 2019 Update 4
建立三个项目,FortranLib, FortranMain, CPPMain,其中FortranMain, CPPMain两个项目依赖Fortranlib。

Fortranlib中一个.f90文件,内容:
subroutine sub(a)
  implicit none
  integer :: a
  write(*,*) a
  return
end subroutine
   
subroutine SUBWITHOUTPARA()
  implicit none
  write(*,*) "In subWithoutPara"
  return
end subroutine

FortranMain中一个文件,内容:
program ex0842m
  implicit none
  call sub(5)
  call subWithoutPara
  stop
end

CPPMain中一个CPP文件,内容:
#include "pch.h"
extern "C" {
void _stdcall SUBWITHOUTPARA();
}
int main(void)
{
        int a = 10;
        SUBWITHOUTPARA();
        return 0;
}

FortranMain编译执行正常,CPPMain出现编译错误:
LNK2001   unresolvedexternal symbol _SUBWITHOUTPARA@0
项目工程代码:https://pan.baidu.com/s/1Sd13kH3ddIFry237uvz46g

网上查了半天也没能定位,求教各位大佬!多谢多谢!

作者: fcode    时间: 2019-9-2 14:17
[Fortran] 纯文本查看 复制代码
subroutine SUBWITHOUTPARA() Bind(C,Name="SUBWITHOUTPARA")
  implicit none
  write(*,*) "In subWithoutPara"
  return
end subroutine


[C++] 纯文本查看 复制代码
#include "pch.h"
extern "C" {
void SUBWITHOUTPARA();
}
int main(void)
{
        int a = 10;
        SUBWITHOUTPARA();
        return 0;
}







欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2