mkbundle的结果抛出“未找到符号:_kCFLocaleCountryCode”

时间:2016-11-22 15:20:16

标签: macos f# mono mkbundle

我正在尝试在mac OS X v.10.12.1上创建一个简单的fsharp代码包,当我运行结果时出现错误。我能找到的类似_kCFLocaleCountryCode错误的引用似乎与我的问题不符。任何帮助将不胜感激。

谢谢,乔恩

代码是fsharp脚本test.fsx:

printfn "%d" 10

使用F#编译器为F#4.0(开源版)编译,形成Mono 4.4.1(mono-4.4.0-branch-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
$

1 个答案:

答案 0 :(得分:0)

试试这个

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

然后测试

./test