Excel365用Gfortran

问题描述 投票:0回答:1

integer function testx() testx = 42 end function testx

然后在Excel中的VBA模块中,我有以下代码:

Public hasAccess As Boolean

Private Declare PtrSafe Function testx Lib "/Library/Application Support/Microsoft/testx.dylib" () As Long

Private Function requestFileAccess() As Boolean
  Dim fileAccessGranted As Boolean
  Dim filePermissionCandidates
  filePermissionCandidates = Array("/Library/Application Support/Microsoft/testx.dylib")
  fileAccessGranted = GrantAccessToMultipleFiles(filePermissionCandidates)
  requestFileAccess = fileAccessGranted
End Function

Public Function doTestx() As Long
  If hasAccess = False Then
    hasAccess = requestFileAccess()
  End If
  doTestx = testx()
End Function

为了创建Dylib的顺序,我最初编译了“ Tests.f90”,如下所示:

gfortran -c -mmacosx-version-min=11.2 -fno-underscoring testx.f90

然后我有两个选择:


使用clang

链接
  1. clang -o testx.dylib -dynamiclib -fPIC -mmacosx-version-min=11.2 testx.o
使用Gfortran
链接
  1. gfortran -o testx.dylib -v -dynamiclib -fPIC -mmacosx-version-min=11.2 testx.o
    在两种情况下,我都会得到我的testx.dylib,然后转到/库/申请支持/microsoft/。 testx.dylib本身在调用默认库中包含的其他功能libgfortran.dylib,当我在excel中时找不到它...
有一些这个问题的历史。
我能够使用HPC Gfortran将Dylib与Macos Catalina致电Dylib进行编译和链接。
在大苏尔(Big Sur)下,我无法使用Gfortran称Dylibs来链接,但成功地称呼Clang连接的几个Dylibs之一。行为不一致。

试图使用HPC Gfortran二进制二进制编译MacbookPro M4上的编译和链接以与Gfortran或Clang链接,但到目前为止没有运气。使用相同的位置/库/应用程序支持/Microsoft/

使用install_name_tool更改dylib ID。见下文。这曾经很好地工作,但与红杉15.3.1.
不再有效。
将继续这项工作。
install_name_tool -id /Library/ApplicationSupport/Microsoft/libmydylib.dylib libmydylib.dylib

excel vba macos fortran dylib
1个回答
0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.