2

MacOSX 10.8.5 でアプリケーションをコンパイルし、必要なものをすべて含む .app ディレクトリを作成します。これは、もともと Linux でテストされた wxWidgets および OpenGL アプリです。実行すると、完全に正常に動作します。ただし、2 回目に実行すると、次のメッセージで失敗します。

LSOpenURLsWithRole() failed with error -10810 for the file /...path to the app directory.../

最初の実行の前にディレクトリをコピーして、それらに対して diff を実行しました。

diff -ENwbur coupid.app coupid-orig.app
Binary files coupid.app/Contents/MacOS/coupid and coupid-orig.app/Contents/MacOS/coupid differ

coupidアプリケーションの名前です。それは、OSがバイナリを変更したことを意味します!!! そして、この変更の後、バイナリはその奇妙なエラーで実行されません。私はMacにまったく慣れていないので、助けてください.Macと互換性があるようにする必要があります.

アプリケーションを gcc コンパイラでコンパイルしました。これがコマンド ラインです (メイン ファイルのみ)。

g++ -DHAVE_CONFIG_H -I. -I.. -I/opt/local/lib/wx/include/osx_cocoa-unicode-2.9 -I/opt/local/include/wx-2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D_ WXMAC _ -D_ WXOSX _ -D__WXOSX_COCOA__ -I../../src -g -O2 -Wall -D_GNU_SOURCE -g -O2 -I/opt/local/lib/wx/include/osx_cocoa-unicode-2.9 -I/opt/local/include/wx- 2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D_ WXMAC _ -D_ WXOSX _ -D__WXOSX_COCOA__ -MT coupid.o -MD -MP -MF .deps/coupid.Tpo -c -o coupid.o coupid.cc

これはリンク行です:

g++ -I../../src -g -O2 -Wall -D_GNU_SOURCE -g -O2 -I/opt/local/lib/wx/include/osx_cocoa-unicode-2.9 -I/opt/local/include/wx -2.9 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D_ WXMAC _ -D_ WXOSX _ -D__WXOSX_COCOA__ -framework GLUT -lhdf5 -llua -o coupid coupid.o data.o model.o vars.o images.o frame.o dialog.o ユーティリティ.o ../../src/lpio.o -lavcodec -lpthread -lz -lavutil -lpng -llua -lhdf5 -lm -L/opt/local/lib -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -フレームワーク システム -framework OpenGL -lwx_osx_cocoau_html-2.9 -lwx_osx_cocoau_core-2.9 -lwx_baseu_net-2.9 -lwx_osx_cocoau_gl-2.9 -lwx_baseu-2.9

繰り返しますが、私の質問は次のとおりです。

  1. OS がバイナリを変更する理由と、OS はそれに対して何をするのですか?
  2. その変更後に実行されない理由
  3. この動作を回避して問題を解決するにはどうすればよいですか。

PS。友人と一緒に別の MacBook Pro でテストしましたが、彼もまったく同じ問題を抱えています。PPS。別の友人が Mac Air で実行し、同じ問題が発生しました! 非常に紛らわしいです。

PPPS。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>CFBundleIconFile</key>
      <string>icon</string>
      <key>BuildMachineOSBuild</key>
      <string>10K549</string>
      <key>CFBundleDevelopmentRegion</key>
      <string>English</string>
      <key>CFBundleExecutable</key>
      <string>coupid</string>
      <key>CFBundleIdentifier</key>
      <string>com.yourcompany.coupid</string>
      <key>CFBundleInfoDictionaryVersion</key>
      <string>6.0</string>
      <key>CFBundleName</key>
      <string>coupid</string>
      <key>CFBundlePackageType</key>
      <string>APPL</string>
      <key>CFBundleShortVersionString</key>
      <string>1.0</string>
      <key>CFBundleSignature</key>
      <string>????</string>
      <key>CFBundleVersion</key>
      <string>1</string>
      <key>DTCompiler</key>
      <string></string>
      <key>DTPlatformBuild</key>
      <string>10M2518</string>
      <key>DTPlatformVersion</key>
      <string>PG</string>
      <key>DTSDKBuild</key>
      <string>10M2518</string>
      <key>DTSDKName</key>
      <string>macosx10.6</string>
      <key>DTXcode</key>
      <string>0400</string>
      <key>DTXcodeBuild</key>
      <string>10M2518</string>
      <key>LSMinimumSystemVersion</key>
      <string>10.6</string>
      <key>NSMainNibFile</key>
      <string>MainMenu</string>
      <key>NSPrincipalClass</key>
      <string>NSApplication</string>
    </dict>
    </plist>
4

0 に答える 0