Fortran Coder

查看: 42|回复: 1

[混编] 求教:C++调用Fortran静态库链接错误问题

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
13 元
贡献
5 点
发表于 2019-9-2 14:06:21 | 显示全部楼层 |阅读模式
本帖最后由 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

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

使用道具 举报

1426

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
759 元
贡献
563 点

新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2019-9-2 14:17:40 | 显示全部楼层
[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;
}


您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-9-21 17:35

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表