如何在MacOSX下的Ogre项目中获得输出控制台?

如何在MacOSX下的Ogre项目中获得输出控制台?,macos,api,console,porting,ogre3d,Macos,Api,Console,Porting,Ogre3d,我正在用Ogre3D做一个项目。我们最近将我们的项目移植到MacOSX,但是有一些东西与Windows API相关联。特别是我不知道该如何翻译: #if defined( __WIN32__ ) || defined( _WIN32 ) AllocConsole(); #endif 有一天在Linux下移植这个项目会很好,那么有没有一种Unix兼容的方法来为标准输出/输入分配控制台呢 从UNIX的角度感谢您,因为我在Mac特定的开发方面没有那么丰富的经验 默认情况下,“分配”控制台。但

我正在用Ogre3D做一个项目。我们最近将我们的项目移植到MacOSX,但是有一些东西与Windows API相关联。特别是我不知道该如何翻译:

#if defined( __WIN32__ ) || defined( _WIN32 )
    AllocConsole();
#endif
有一天在Linux下移植这个项目会很好,那么有没有一种Unix兼容的方法来为标准输出/输入分配控制台呢


从UNIX的角度感谢您,因为我在Mac特定的开发方面没有那么丰富的经验

默认情况下,“分配”控制台。但是,您不能命令操作系统打开控制台。您可以告诉您正在使用的IDE在终端中打开它,或者,如果它支持,尽管使用GUI,也可以将当前应用程序创建为控制台应用程序

我说控制台默认分配是什么意思?每个进程实际上从调用进程获取其
stdin
stdout
stderr
(文件标识符0、1和2)。所以,除非调用进程(
bash
,Finder,无论什么)方便地忘记打开它们,否则您总是有一个控制台打开。。。但也许是看不见的

获取控制台的最简单方法是从终端启动应用程序,就像Finder从GUI启动应用程序一样。请记住,.apps实际上是文件夹:

/projects/myapp$ ./BuiltApplication.app/Contents/MacOS/BuiltApplication
Finder将当前工作目录设置为.app bundle所在的文件夹,因此上面的模拟效果最好

此外,请查看MacOS附带的控制台应用程序(位于
/Applications/Utilities/Console.app
)。控制台通常用于查看标准输出和标准输出。我不能测试这个,因为我不在Mac上,但我确实找到了一些消息来源,说stdout和stderr应该重定向到那里

您可以使用Console.app查看以正常方式启动的应用程序的输出,因为启动基础结构专门在那里发送它们的
stdout
stderr
。您还可以使用
asl
例程查询日志,或者根据需要执行更复杂的日志记录


从UNIX的角度来看,因为我在Mac特定的开发方面没有那么丰富的经验

默认情况下,“分配”控制台。但是,您不能命令操作系统打开控制台。您可以告诉您正在使用的IDE在终端中打开它,或者,如果它支持,尽管使用GUI,也可以将当前应用程序创建为控制台应用程序

我说控制台默认分配是什么意思?每个进程实际上从调用进程获取其
stdin
stdout
stderr
(文件标识符0、1和2)。所以,除非调用进程(
bash
,Finder,无论什么)方便地忘记打开它们,否则您总是有一个控制台打开。。。但也许是看不见的

获取控制台的最简单方法是从终端启动应用程序,就像Finder从GUI启动应用程序一样。请记住,.apps实际上是文件夹:

/projects/myapp$ ./BuiltApplication.app/Contents/MacOS/BuiltApplication
Finder将当前工作目录设置为.app bundle所在的文件夹,因此上面的模拟效果最好

此外,请查看MacOS附带的控制台应用程序(位于
/Applications/Utilities/Console.app
)。控制台通常用于查看标准输出和标准输出。我不能测试这个,因为我不在Mac上,但我确实找到了一些消息来源,说stdout和stderr应该重定向到那里

您可以使用Console.app查看以正常方式启动的应用程序的输出,因为启动基础结构专门在那里发送它们的
stdout
stderr
。您还可以使用
asl
例程查询日志,或者根据需要执行更复杂的日志记录