我是运行10.10.5 Yosemite和Xcode 6.3.2的mac用户。在Documents中有一个文件夹(由用C ++编写的命令行工具项目生成),名为' Game'这种结构:
Game:
Game.xcodeproj (my project)
Game:
main.cpp (my c++ source)
Build:
Products:
Debug:
Game (an executable)
SDL2.framework (a development library)
我希望链接到Build / Products / Debug中的SDL2.framework,以便它可以在任何Mac上运行,来自此特定文件夹。
我已经执行了以下步骤:
我将SDL2.framework从Build / Products / Debug拖到我的Project Navigator中。如果需要,我会取消选中并复制。'
这会自动将“Link Binary”添加到“Libraries'包含SDL2.framework的构建阶段。
SDL2.framework是相对于group-in' Build / Products / Debug / SDL2.framework'而引用的。根据需要。
在我的main.cpp中,我写道:
# include "SDL2/SDL.h"
生成的可执行文件在我的计算机上运行,无论游戏'层次结构中最高的文件夹是。
我的项目不引用/ Library / Frameworks中的SDL2.framework。我可以在那里更改SDL2.framework的名称,程序仍然运行。这表明它是从/ Build / Products / Debug中获取它的。
然而,当我将整个文件夹放到与我相同的mac上时,可执行文件会运行,但是失败并出现此错误:
Last login: Sat Mar 26 11:32:08 on ttys002
[~/ 1> /Volumes/NO\ NAME/Game/Build/Products/Debug/Game ; exit;
dyld: Library not loaded: @rpath/SDL2.framework/Versions/A/SDL2
Referenced from: /Volumes/NO NAME/Game/Build/Products/Debug/Game
Reason: image not found
Trace/BPT trap
logout
[Process completed]
花了几个小时寻找解决方案,我傻眼了。我做错了什么?