Алхимический компоновщик swc не имеет очень хороших отчетов об ошибках, что затрудняет его отладку.Происходит то, что компоновщик не находит библиотеку.Как это исправить:
- gcc чувствителен к регистру.Вы должны использовать -lFLAC (не -lflac)
- Алхимия нуждается в файле FLAC.l.bc, который был сгенерирован при сборке libFLAC.a
К сожалению, чтобы получить его для реальной ссылкив итоге выдает ошибку во время компоновки:
Cannot yet select: 0x198b960: i32 = ConstantPool < i64 6881500230622117888> 0
0 llc 0x00636dfe _ZNSt8_Rb_treeIN4llvm3sys4PathES2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13insert_uniqueERKS2_ + 6078
1 llc 0x006373a2 _ZNSt8_Rb_treeIN4llvm3sys4PathES2_St9_IdentityIS2_ESt4lessIS2_ESaIS2_EE13insert_uniqueERKS2_ + 7522
2 libSystem.B.dylib 0x9402f2bb _sigtramp + 43
3 ??? 0xffffffff 0x0 + 4294967295
4 libSystem.B.dylib 0x940a323a raise + 26
5 libSystem.B.dylib 0x940af679 abort + 73
6 llc 0x002f862b _ZN98_GLOBAL__N__Volumes_data_dev_FlaCC_llvm_2.1_lib_Target_AVM2_AVM2ISelDAGToDAG.cpp_00000000_F04616B616AVM2DAGToDAGISel10SelectCodeEN4llvm9SDOperandE + 187
7 llc 0x002fa193 _ZN98_GLOBAL__N__Volumes_data_dev_FlaCC_llvm_2.1_lib_Target_AVM2_AVM2ISelDAGToDAG.cpp_00000000_F04616B616AVM2DAGToDAGISel10SelectRootEN4llvm9SDOperandE + 819
8 llc 0x002e6a2c _ZN4llvm19X86_64TargetMachineD0Ev + 65116
9 llc 0x003de4ca _ZN4llvm11StoreSDNodeD1Ev + 1610
10 llc 0x0040d3fe _ZN4llvm11StoreSDNodeD1Ev + 193918
11 llc 0x0040f92e _ZN4llvm11StoreSDNodeD1Ev + 203438
12 llc 0x005d1926 _ZN4llvm12FunctionPassD1Ev + 20998
13 llc 0x005d1f3a _ZN4llvm12FunctionPassD1Ev + 22554
14 llc 0x005d20c5 _ZN4llvm12FunctionPassD1Ev + 22949
15 llc 0x00002e44 _mh_execute_header + 7748
16 llc 0x00001f36 _mh_execute_header + 3894
17 ??? 0x00000006 0x0 + 6
Я видел эту же ошибку при попытке собрать libFLAC (v1.2.1) в целом (не только библиотеку).Эта ошибка происходит, когда есть некоторый код на C, который создает байт-код LLVM, который не может обработать Alchemy.(Неясно, является ли это проблемой с тем, что производит LLVM, или ошибкой в Алхимии.)
Вы должны выяснить, где находится код, вызывающий нарушение, и изменить его на то, что нравится Алхимии (фактически не меняя логику!).Кажется, я помню, что у кого-то была похожая проблема с ffmpeg: http://forums.adobe.com/message/2905914#2905914