C++ 将框架静态链接到Xcode命令行工具
我是运行10.10.5约塞米蒂和Xcode 6.3.2的mac用户。在文档中有一个名为“Game”的文件夹(由用C++编写的命令行工具项目生成),其结构如下:C++ 将框架静态链接到Xcode命令行工具,c++,xcode,macos,frameworks,C++,Xcode,Macos,Frameworks,我是运行10.10.5约塞米蒂和Xcode 6.3.2的mac用户。在文档中有一个名为“Game”的文件夹(由用C++编写的命令行工具项目生成),其结构如下: Game: Game.xcodeproj (my project) Game: main.cpp (my c++ source) Build: Products: Debug: G
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拖到我的项目导航器中。我未选中“需要时复制”
这会自动添加“使用库链接二进制文件”构建阶段,其中包括SDL2.framework
根据需要,SDL2.framework是相对于“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]
花了几个小时寻找解决方案,我目瞪口呆。我做错了什么