0

我正在开发一个使用 Adob​​e 的DNG SDK 1.6 库的项目,它应该可以在 Windows 和 MacOS 上运行。

该库有关于如何为这两个平台构建它的说明,但我必须找出在 Windows 上使用 Visual Studio 时出现的错误。我对大型 C++ 项目不是很有经验,所以这不是微不足道的,但我得到了它的工作。我自己的大部分代码将在 C# .Net Core 中完成,使用带有 P/Invoke 的包装类调用本机库。

现在对于 Mac,情况就不同了,我有一个 MacOS 11 VM,安装了 Xcode 12.5.1 并按照所提供的步骤进行操作,正如预期的那样,它不起作用。请记住,这是我第一次接触 Xcode 和 MacOS。

我正在尝试构建的项目是dng_validate,它依赖于这些项目构建的两个库:XMPFiles64XMPCore64.

库项目的构建没有任何问题,每个项目都在文件夹中创建一个“.a”文件:dng_sdk_1_6/xmp/toolkit/public/libraries/macintosh/intel_64_libcpp/Debug,它们分别被命名为libXMPFilesStaticDebug.alibXMPCoreStaticDebug.a

当我尝试构建dng_validate项目时,出现以下错误:

Library not found for -lXMPFilesStaticDebug

由于错误以“l”而不是“lib”开头,在两个库项目设置下,我将“可执行前缀”设置更改为“l”而不是“lib”。重建它们并确保文件名按预期更改。但是在尝试构建主项目时错误仍然存​​在。

dng_validate的项目设置下,有一个名为“库搜索路径”的设置,它确实使用相对路径指向上述正确的文件夹。我什至将其更改为绝对路径,以查看是否可以使其正常工作。

我真的迷路了,有没有人知道可能是什么原因造成的?

4

1 回答 1

0

嗯......在其他论坛上询问并几乎聘请自由职业者为我解决这个问题后,我在重命名库文件的黑暗中尝试了另一个镜头,它奏效了。

我将扩展名libXMPFilesStaticDebug.alibXMPCoreStaticDebug.a从“.a”更改为“.dylib”,它刚刚编译并让我大吃一惊。

于 2022-02-16T16:41:59.640 回答