Macos Mac OS X上应用程序中二进制可执行文件的要求是什么?

Macos Mac OS X上应用程序中二进制可执行文件的要求是什么?,macos,build,Macos,Build,我们不使用Xcode IDE来构建.app。我们使用shell脚本来构建它。我们遵循了,但似乎仍然无法加载可执行文件,并且.app无效 根据Mac文档,.app需要包含以下两个部分: Info.plist:RPK.app/Contents/Info.plist 可执行文件:RPK.app/Contents/MacOS/RPK 因此,我们将以下内容复制到Info.plist文件中 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE

我们不使用Xcode IDE来构建
.app
。我们使用shell脚本来构建它。我们遵循了,但似乎仍然无法加载可执行文件,并且
.app
无效

根据Mac文档,
.app
需要包含以下两个部分:

  • Info.plist:RPK.app/Contents/Info.plist
  • 可执行文件:RPK.app/Contents/MacOS/RPK
因此,我们将以下内容复制到
Info.plist
文件中

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDisplayName</key>
    <string>RPK</string>
    <key>CFBundleExecutable</key>
    <string>RPK</string>
    <key>CFBundleIdentifier</key>
    <string>com.codetool.RPK</string>
    <key>CFBundleName</key>
    <string>RPK</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleSignature</key>
    <string>XCEL</string>
    <key>CFBundleVersion</key>
    <string>12.2.0</string>
</dict>
</plist>
main.mm:

#include <iostream>
#include <vector>
#include <algorithm>
int main(int argc, const char *argv[])
{
    printf("HELLO WORD");
    return 0;
}
#包括
#包括
#包括
int main(int argc,const char*argv[]
{
printf(“你好词”);
返回0;
}
但是
.app
似乎仍然无法加载,原因似乎与可执行文件有关。
那么,在Mac上加载(运行)应用程序的可执行性要求是什么呢?我只看到了???这只是随机的四个字符。不知道你为什么选择艰难的方式,但还好。该主要功能不是cocoa应用程序。请参阅标准cocoa应用程序的主要部分。@bbum,您能提供更多详细信息吗?我已经使用Xcode创建了一个Cocoa应用程序,
main.m
中的主要函数是
intmain(intargc,const char*argv[])
,即使我只有一行
返回0
main
中,可以运行,那么有什么区别呢。首先创建一个非常简单的单一窗口Cocoa应用程序。现在将其与您的应用程序进行比较。存在着巨大的差异,
main
就是其中之一。具体来说,您的
main
不调用
NSApplicationMain()
。如果不知道你真正想要实现什么,就不可能说得更多。
#include <iostream>
#include <vector>
#include <algorithm>
int main(int argc, const char *argv[])
{
    printf("HELLO WORD");
    return 0;
}