2

我正在尝试使用 xbuild(在 OSX 10.8 上)从命令行构建本机 monobjc 包。我使用 Xamarin Studios 和 Monobjc 插件构建了我的 Cocoa 应用程序。我可以成功运行“创建 Monobjc Bundle”>“导出为本机应用程序”并获得可再分发的应用程序。但是,当我尝试从终端运行 xbuild 命令时,我得到以下信息:

    $xbuild /p:Configuration=Release TestProject.csproj /t:BundleNative
构建失败。
    错误:
    /Users/Test/Documents/test/TestProject.csproj (BundleNative) ->
     /Library/Frameworks/Mono.framework/Versions/2.10.12/lib/mono/4.0/Monobjc.CocoaApplication.targets(CoreBundleNative 目标)->

    /Library/Frameworks/Mono.framework/Versions/2.10.12/lib/mono/4.0/Monobjc.CocoaApplication.targets:错误:clang:警告:编译期间未使用的参数:'-pthread'
    /Library/Frameworks/Mono.framework/Versions/2.10.12/lib/mono/4.0/Monobjc.CocoaApplication.targets:错误:执行任务EncryptFiles时出错:未设置必需的属性“EncryptionSeed”。

    0 个警告
    2 个错误

我已将 csproj 的 <EncryptionSeed> 属性设置为任意值,以查看这是否是问题所在。但很可惜,我一无所获。如您所见,我使用的是通过 Xamarin 安装的 Mono 2.10.12(SDK)和 Monobjc 4.0.2167.11。任何帮助,将不胜感激。

更新 1:我通过 monobjc 下载页面 (5.0.2165.0) 中的 monobjc 包安装最新的 monobjc 桥接器修复了加密种子错误,但仍然存在关于 pthread 的错误,该错误发生在嵌入应用程序步骤中:

正在编译...
        参数:' -Os -gdwarf-2 -arch i386 -mmacosx-version-min=10.8 -I"bin/Release//Embed" -c "bin/Release//Embed/main.c" -o "bin/Release //嵌入/main.o" -D_THREAD_SAFE -I/Library/Frameworks/Mono.framework/Versions/2.10.12/include/mono-2.0 '
        -pthread -L/Library/Frameworks/Mono.framework/Versions/2.10.12/lib -lmono-2.0 -lpthread  
        正在链接...
        参数:' -arch i386 -mmacosx-version-min=10.8 -L"bin/Release//Embed" -pthread -L/Library/Frameworks/Mono.framework/Versions/2.10.12/lib -lmono-2.0 -lpthread -lz -lmonobjc -lTest_exe -lMono_Posix_dll -lMono_Security_dll -lMonobjc_AppKit_dll -lMonobjc_dll -lMonobjc_Foundation_dll -lMonobjc_ScriptingBridge_dll -lmscorlib_dll -lMSWordInterface_dll -lSystem_Configuration_dll -lSystem_Core_dll -lSystem_dll -lSystem_Runtime_Serialization_dll -lSystem_Security_dll -lSystem_Xml_dll -lmachine_config -o "bin/Release//Embed/Test" "bin /Release//嵌入/main.o" '
/Library/Frameworks/Mono.framework/Versions/2.10.12/lib/mono/4.0/Monobjc.CocoaApplication.targets:错误:clang:警告:编译期间未使用的参数:'-pthread'
        嵌入完成
4

1 回答 1

1

EncryptionSeed标签是在最新的 Monobjc MonoDevelop Addin 中引入的,用于处理资源加密,仅由 Monobjc 5.0 系列处理。

至于clang消息,这不是一个错误。如果您阅读说明,您会注意到这是一个警告。编译器通过 Process 类调用,clang该类允许捕获标准输出和错误流。不幸的是,警告是在标准错误流上报告的:这就是嵌入任务在只有警告时报告一些错误的原因。

如果您认为问题是一个阻碍,请提交一个错误。

于 2013-07-19T16:11:19.247 回答