我有一個.Net程序,它可以正常使用「mono Program.exe」,但現在我正嘗試在同一臺機器上使用「mkbundle -o prog Program.exe --deps」 ,並且它返回以下錯誤:跳過不兼容的庫(mkbundle)
/usr/bin/ld: skipping incompatible /opt/novell/mono/lib/pkgconfig/../../lib/libmono-2.0.so when searching for -lmono-2.0 /usr/bin/ld: skipping incompatible /opt/novell/mono/lib/pkgconfig/../../lib/libmono-2.0.a when searching for -lmono-2.0 /usr/bin/ld: cannot find -lmono-2.0 collect2: ld returned 1 exit status
系統是x86_64上的CentOS 5.7。我已使用these說明在此係統上安裝了單聲道。有誰知道爲什麼單聲道作品,但mkbundle不?我該如何解決它?
對不起,這似乎有點令我困惑。我怎麼知道我是否安裝了32位單聲道或64位版本?單聲道安裝在/ opt/novell/mono /文件夾中,我在那裏看到一個lib64文件夾。但是,當我輸入「mono -V」時,它表示架構是x86。這是什麼意思?另外,如果我正確理解你的解決方案,我需要使用「mkbundle -c -o program Program.exe --deps」,然後呢? – 2012-01-09 08:25:02
如果單聲道-V表示x86有32位可執行文件。確保你只安裝了一個單聲道(在終端上運行'which -a mono')。 – lupus 2012-01-10 10:00:55
對於該解決方案,首先運行mkbundle2 --deps Program.exe並記下編譯器命令行(它看起來像「cc -ggdb ...」),然後使用-c選項再次運行mkbundle2。之後運行前面顯示的編譯器命令行,但也添加-m32選項。 – lupus 2012-01-10 10:03:04