gpt4 book ai didi

cocoa - 复制的 Cocoa Framework 仅搜索/Library/Frameworks/...。我怎样才能让它在自身内部搜索二进制?

转载 作者:行者123 更新时间:2023-12-03 17:16:12 27 4
gpt4 key购买 nike

我制作了一个带有动态库的Cocoa框架。该库包含 C 函数。我将框架复制到其他项目中,编译得很好,但是运行时它崩溃并显示这样的消息。

warning: Unable to read symbols for /Library/Frameworks/NewtonGameDynamics.framework/Versions/A/NewtonGameDynamics (file not found).
warning: Unable to read symbols from "NewtonGameDynamics" (not yet mapped into memory).
[Switching to process 48902 thread 0x0]
dyld: Library not loaded: /Library/Frameworks/NewtonGameDynamics.framework/Versions/A/NewtonGameDynamics
Referenced from: /Users/eonil/Library/Developer/Xcode/DerivedData/newton-integration-test-1-ddaxmlnzdnwstkfaiolnkygefbmp/Build/Products/Debug/newton-integration-test-1.app/Contents/MacOS/newton-integration-test-1
Reason: image not found
(gdb)

二进制文件位于复制的框架目录中。为什么会发生这种情况以及如何避免这种情况?

最佳答案

这比我想象的要复杂。

问题是在框架中定位二进制文​​件。仅使用 $(EXECUTABLE_PATH) 看起来就足够了。但真正的问题是它应该是绝对路径。

所以基本的解决方案是@executable_path/../Frameworks/$(EXECUTABLE_PATH)。因为这是嵌入式私有(private)框架,并且运行应用程序二进制文件的路径就是这样。

INSTALL_PATH = @executable_path/../Frameworks
LD_DYLIB_INSTALL_NAME = @executable_path/../Frameworks/$(EXECUTABLE_PATH)

关于cocoa - 复制的 Cocoa Framework 仅搜索/Library/Frameworks/...。我怎样才能让它在自身内部搜索二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5923619/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com