【问题标题】:Creating an application bundle on OSX with eclipse C++使用 eclipse C++ 在 OSX 上创建应用程序包
【发布时间】:2011-02-27 02:20:28
【问题描述】:

我已经使用带有 C/C++ 插件的 Eclipse 编译了一个项目(使用 http://libcinder.org 库,它工作得很好。 有点……

它是一个窗口应用程序,opengl 正在正确重绘屏幕,鼠标事件是正确的,等等。但是,我只能从终端运行应用程序,否则当我尝试点击调试时,我可以看到我的控制台语句,但是没有窗口可言。

当我从应用程序输出 CWD 时,它似乎认为它是从我的用户目录运行的。

如何让这个应用程序看起来更像“mac”,特别是当你右键单击一个 mac 应用程序时,你可以查看它的内容,并能够加载与应用程序可执行文件相关的文件。

此外,任何关于为什么在 Eclipse 中通过调试器启动时它没有出现的见解也会有所帮助。

我已将这个项目放在一起,以供其他可能在这里发现它有用的人使用: https://github.com/onedayitwillmake/EclipseLovesCinder

【问题讨论】:

  • 为什么这个问题被否决了,我觉得很多人都想知道这个信息,事实证明它很简单

标签: c++ eclipse xcode makefile debugging


【解决方案1】:

嗯。这是一个架构问题。不知道 Eclipse 是如何正常打包资源的,但是他们并没有使用 OSX 内置的应用程序捆绑架构。

Here's the Apple developer docs on NSBundle. Start your reading here!

【讨论】:

    【解决方案2】:

    显然,这实际上只是创建目录的问题。 我在这个页面上找到了一些很好的信息: http://webcache.googleusercontent.com/search?q=cache:NUzzPvEcP04J:max.berger.name/howto/wxWidgets/wxWidgets_Eclipse.jsp+application+bundle+${BuildArtifactFileName}&cd=1&hl=en&ct=clnk&gl=us&source=www.google.com

    我在项目中专门使用这个,C/C++ Build -> Settings -> BuildSteps -> Post Build Steps:

    全部一行,带 ;他们之间
    mkdir -p ${BuildArtifactFileName}.app/Contents/MacOS ;
    mv ${BuildArtifactFileName} ${BuildArtifactFileName}.app/Contents/MacOS/ ;
    cp -rf ../Resources ${BuildArtifactFileName}.app/Contents/Resources ;
    cp -rf ../Resources/Info.plist ${BuildArtifactFileName}.app/Contents/Info.plist

    这将创建目录结构,并将项目 /resources/ 文件夹中的所有内容复制到应用程序包资源目录。

    我很抱歉回答了我自己的问题

    【讨论】:

    • 我将 mv 更改为 cp,因为重建偶尔会出现问题。它还值得更新您的运行配置以指向复制位置的位置,即 Debug/MyExecutable.app/Contents/MacOS/MyExecutable 否则您将无法正确访问您的资源。
    猜你喜欢
    • 2015-07-27
    • 2010-12-08
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多