尝试将TurboActivate编译为MacOS 64应用程序-获取架构x86_64的E2597未定义符号:

尝试将TurboActivate编译为MacOS 64应用程序-获取架构x86_64的E2597未定义符号:,macos,delphi,firemonkey,Macos,Delphi,Firemonkey,在编译的链接阶段,我得到了这个错误 [dccosx64错误]E2597架构x86_64的未定义符号: Error: "__TA_GetHandle", referenced from: __ZN17Turboactivateunit12TA_GetHandleEPc in TurboActivateUnit.o; Error: "__TA_CheckAndSavePKey", referenced from: __ZN17Turboactivateunit19TA_Che

在编译的链接阶段,我得到了这个错误

[dccosx64错误]E2597架构x86_64的未定义符号:

Error: "__TA_GetHandle", referenced from:      __ZN17Turboactivateunit12TA_GetHandleEPc in TurboActivateUnit.o;
  Error: "__TA_CheckAndSavePKey", referenced from:      __ZN17Turboactivateunit19TA_CheckAndSavePKeyEmPcm in TurboActivateUnit.o;
  Error: "__TA_PDetsFromPath", referenced from:      __ZN17Turboactivateunit16TA_PDetsFromPathEPc in TurboActivateUnit.o;
  Error: "__TA_ActivateFromFile", referenced from:      __ZN17Turboactivateunit19TA_ActivateFromFileEmPc in TurboActivateUnit.o;
。 . . . . ld:找不到架构x86_64的符号

在代码中,函数声明如下

函数TA_GetHandle(versionGUID:System.PAnsiChar):长单词;cdecl;外部'libTurboActivate.dylib'name'_TA_GetHandle'

函数TA_Activate(句柄:LongWord;选项:指针):LongInt;cdecl;外部'libTurboActivate.dylib'name'_TA_Activate'

函数TA_ActivationRequestToFile(句柄:LongWord;文件名:System.PAnsiChar;选项:指针):LongInt;cdecl;外部“libTurboActivate.dylib”名称“\u TA_ActivationRequestToFile”

函数TA_ActivateFromFile(句柄:LongWord;文件名:System.PAnsiChar):LongInt;cdecl;外部“libTurboActivate.dylib”名称“\u TA_ActivateFromFile”; . . .

我使用“nm”工具检查了Mac上的动态库文件,得到了动态库中的函数列表-不幸的是,我注意到如何确定函数是32位还是64位,因为我知道动态库可以同时包含函数的两个版本。我认为动态库可能只包含32位版本的函数,而不包含64位版本的函数,对吗? 我已经与TurboActivate.dylib的创建者Wyday取得了联系,他们很快做出了“不是我们的问题”的回应

要回答邓的问题:

恐怕没有-我联系了Lime support这里有回复:

很难说德尔福到底反对什么。libTurboActivate.dylib非常适用于其他编程语言。 Delphi中可能存在的bug和/或其对x64 macOS目标的支持(这必须是Delphi的最新添加,因为Delphi的10.2版本仅支持x86)。 我们最终会看到这一点,看看是否可以解决Delphi的bug。但这并不是我们目前的当务之急。你最好联系德尔福的母公司(还是Empbarcadero?),请他们帮助你。 我确实联系过embarcadero,他带着这个回来了

您的请求已确定超出我们基于事件的支持服务范围。我建议向负责支持库的供应商寻求帮助

这两个供应商似乎在互相指责,这一点都没有帮助


我最终从我们的产品中删除了LimeLM,现在使用了更粗糙的使用控制版本。如果它没有得到修复,我们将寻求其他形式的产品许可

关于查找库具有哪些体系结构,请按照使用file命令:。我在这里使用了Wyday的下载链接(注册后):文件命令报告它仅为64位。如果您有较早的版本,也许可以尝试重新下载。如果这没用,我会更深入地看我删除了所有旧版本的动态库文件,重新编译-同样的问题,只是为了确定-我重命名了项目文件夹中的动态库文件并进行了编译,编译器抱怨它找不到该文件,因此它肯定是在查看日期为2019年8月16日的正确动态库文件。另一件奇怪的事是,如果您将项目切换到osx 32位,它将编译无误。@CapNemo101我有同样的问题。你找到解决办法了吗?嗨,邓-见上图。