2016-11-22 60 views
2

我想在mac OS X v。10.12.1上做一个简单的fsharp代码包,当我运行结果时出现错误。我可以找到类似的_kCFLocaleCountryCode错误的引用,似乎不符合我的问题。任何帮助将非常感激。mkbundle的结果抛出“找不到符号:_kCFLocaleCountryCode”

谢谢,乔恩


的代码是一个fsharp脚本test.fsx:

printfn "%d" 10 

与F#编译器编译为F#4.0(开源版),形成单4.4.1(单4.4.0分支 - c7sr0/4747417。会发生什么情况如下封闭。

$ fsharpc test.fsx 
F# Compiler for F# 4.0 (Open Source Edition) 
Freely distributed under the Apache 2.0 Open Source License 
$ mkbundle --deps test.exe -o test 
OS is: Darwin 
Sources: 1 Auto-dependencies: True 
    embedding: /Users/sporring/repositories/PoP/fsharp/src/20161122_winforms/test.exe 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/4.5/mscorlib.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/FSharp.Core/4.4.0.0__b03f5f7f11d50a3a/FSharp.Core.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/System.Security/4.0.0.0__b03f5f7f11d50a3a/System.Security.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/Mono.Posix/4.0.0.0__0738eb9f132ed756/Mono.Posix.dll 
    embedding: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/mono/gac/System.Numerics/4.0.0.0__b77a5c561934e089/System.Numerics.dll 
AS = as (default) 
[execute cmd]: as -o temp.o temp.s 
Compiling: 
CC = cc (default) 
[execute cmd]: cc -g -o 'test' -Wall temp.c `pkg-config --cflags --libs mono-2` temp.o 
Done 
$ ./test 
dyld: Symbol not found: _kCFLocaleCountryCode 
    Referenced from: /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/libmonosgen-2.0.1.dylib 
    Expected in: flat namespace 
in /Library/Frameworks/Mono.framework/Versions/4.4.1/lib/libmonosgen-2.0.1.dylib 
Abort trap: 6 
$ 

回答

0

试试这个

export AS="as -arch i386" 
export CC="cc -arch i386 -framework CoreFoundation -lobjc -liconv" 
mkbundle --deps test.exe -o test 

然后测试

./test 
+0

谢谢,但现在的东西不一样 - 我必须在不知不觉中已经更新了相关的事情。 我现在得到了一个与建议的编译器设置不同的错误,并且使用默认值:'package mono-2未在pkg-config搜索路径中找到。我已经通过Xamarin安装了单声道,并且我搜索了所有我能想到的地方('find',macports,google),但没有找到它。有任何想法吗? –

+0

听起来像原来的问题已经解决。那么你应该为你遇到的新问题创建一个新的问题。 –