我开发了一个用C ++,OpenGL和OpenAL开发的游戏,我正在尝试将其构建为应用程序包而不是命令行可执行文件。我复制并粘贴了来自main.cpp文件顶部的Relative Paths Not Working in Xcode C++的代码(也在App_Prefix.pch中尝试过),我得到了许多语法错误。我用错误注释了代码:
#ifdef __APPLE__
#include "CoreFoundation/CoreFoundation.h"
#endif
// ----------------------------------------------------------------------------
// This makes relative paths work in C++ in Xcode by changing directory to the Resources folder inside the .app bundle
#ifdef __APPLE__
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle);
char path[PATH_MAX];
if (!CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)path, PATH_MAX)) // Error: expected unqualified-id before 'if'
{
// error!
}
CFRelease(resourcesURL); // error: expected constructor, destructor or type conversion before '(' token
chdir(path); // error: expected constructor, destructor or type conversion before '(' token
std::cout << "Current Path: " << path << std::endl; // error: expected constructor, destructor or type conversion before '<<' token
#endif
他的代码看起来很好,很多人都在他的帖子中感谢他。有什么我做错了吗?我应该专门为此代码创建一个文件并在其他任何内容之前导入它吗?
答案 0 :(得分:3)
您的代码应位于函数内,例如main()
。目前,您的代码将粘贴到文件级别。你不能在那里进行if
语句或函数调用。