将框架静态链接到Xcode命令行工具

时间:2016-03-26 12:05:54

标签: c++ xcode macos frameworks

我是运行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]

花了几个小时寻找解决方案,我傻眼了。我做错了什么?

0 个答案:

没有答案