0

Mac (Mountain Lion) のターミナルで C コードをコンパイルしました。Windows 7 PC で dyn.load を使用してロードしようとすると、次のメッセージが表示されました。

Error in inDL(x, as.logical(local), as.logical(now), ...) : 
 unable to load shared object 'C:/Users/Iris/Desktop/mcmc.so':
 LoadLibrary failure:  %1 is not a valid Win32 application.

Windows 7 は 64 ビットで、R も 64 ビットです。C コードを別の MAC にロードしても問題はありませんでした。私のコードで何がうまくいかなかったのだろうか。ありがとう。

編集:

ここにある解決策を試しましたが、うまくいきませんでした。

4

1 に答える 1

2

Mac は C コードを Mach-O (Mach Object) 形式にコンパイルします 。Mach-O - Wikipedia これは、Mac プラットフォーム全体で正常に動作するはずです。これが、別の Mac で動作した理由です。

Windows は PE (Portable Executable) 形式 の WinPE を使用します - ウィキペディア

フォーマットに互換性がありません。そのため、LoadLibrary は有効な Win32 アプリケーションではないことについて不平を言っています。

Windows で C コードを再コンパイルすると、動作するはずです。

于 2013-05-01T04:03:14.647 に答える