Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
复制了Cocoa框架搜索/库/框架/。。。只有如何让它在自身内部搜索二进制文件?_Cocoa_Macos_Mac Frameworks - Fatal编程技术网

复制了Cocoa框架搜索/库/框架/。。。只有如何让它在自身内部搜索二进制文件?

复制了Cocoa框架搜索/库/框架/。。。只有如何让它在自身内部搜索二进制文件?,cocoa,macos,mac-frameworks,Cocoa,Macos,Mac Frameworks,我用动态库制作了一个Cocoa框架。这个库包含C函数。我将该框架复制到另一个项目中,编译得很好,但在运行时,它会崩溃,并显示类似这样的消息 warning: Unable to read symbols for /Library/Frameworks/NewtonGameDynamics.framework/Versions/A/NewtonGameDynamics (file not found). warning: Unable to read symbols from "NewtonGam

我用动态库制作了一个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\u path/./Frameworks/$(executable\u path)
。因为这是嵌入式私有框架,运行应用程序二进制文件的路径就是这样

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

这比我想象的要复杂一些

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

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

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