【发布时间】:2011-06-08 03:06:04
【问题描述】:
我有一个相对复杂的 C++ 应用程序的源代码,该应用程序涉及许多库、依赖项等。我正在尝试使用它并向它添加一个 Cocoa GUI。到目前为止,我在以下方面失败了:
- 创建一个新的 Cocoa xcodeproj 并尝试将所有库等移动到 Cocoa 应用程序中。我只是无法构建它。无论我做什么,都会出现成千上万的错误。我在这里的技能还不够好,无法弄清楚发生了什么。
所以,我认为更简单的方法必须是对 C++ xcodeproj 进行适当的更改,以使 main() 函数启动 NSApplication 而不是它现在正在执行的任何操作。
有谁知道我必须做些什么,确切地说,才能做到这一点?我是 Cocoa 的新手,所以我不确定我必须添加什么。作为参考,C++应用的main.cpp其实很简单:
int main() {
ofSetupOpenGL(320,300, OF_WINDOW);
ofRunApp(new testApp());
}
我想做的是做出所有正确的改变,这样可以:
#import <Cocoa/Cocoa.h>
int main(int argc, char *argv[]) {
return NSApplicationMain(argc, (const char **) argv);
}
让旧的 xcodeproj 编译所有“东西”仍然在其中,然后在运行时打开 Cocoa 窗口。
应该注意的是,C++ xcodeproj 似乎完全没有与 Cocoa 相关,甚至与 Objective-C 相关,因此我们必须添加所有相关内容并进行所有相关更改。
有什么想法吗?
(或者,或者,如果您知道我可以如何轻松地从 C++ xcodeproj 中获取所有内容以构建干净整洁的 Cocoa xcodeproj,请告诉我,但目前这对我来说似乎更复杂。)
谢谢!
【问题讨论】:
-
为相关性添加了 Xcode 标签。
-
@MikeC8,你在使用 Objective-C++ 吗?如果没有,那么什么都不会起作用。如果您使用的是 Obj-C++,那么您需要将文件更改为
.mm而不是.cpp。另外,试试这个阅读材料here 确实没有关于 Obj-C++ 的好的指南。 -
我不在乎我用什么,我只想把这些 C++ 函数放到一个 Cocoa 应用程序中:)
-
@MikeC8,那么您肯定需要使用 Objective-C++,并将文件更改为
.mm。这实际上是一个非常复杂的问题。 Have you read this guide yet? -
@MikeC8,您希望引入什么功能?你只是在移植一个 C++ 程序,然后在上面放一个 Cocoa GUI 吗?这是iphone还是mac?
标签: c++ objective-c cocoa xcode openframeworks