- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试使用 Adobe Alchemy 移植 FLAC 编码器以在 Flash 中使用,但无法找出问题所在。
我在 Windows 上使用 Alchemy for Cygwin。它已正确安装和配置。
以下是我为移植 FLAC 编码器所遵循的步骤:
./configure --enable-static=true --enable-shared=false
) ( alc-on
在配置之前)make
)gcc encodeflac.c -O3 -Wall -swc -lFLAC -o encodeflac.swc<br/>
或者(随便)gcc encodeflac.c -O3 -Wall -swc -lflac -o encodeflac.swc<br/>
encodeflac.c 是 FLAC 源代码 (examples/c/encode/file/main.c) 中包含的示例的修改版本,并被采用以与 ActionScript ByteArrays 一起使用。
swc 将在没有警告或错误的情况下编译。但最终的 swc 大小只有 85kb,而静态库大小(libFLAC.a)约为 1mb!另外,编码不起作用。尝试在 AS 中使用它时出现以下错误:
[Fault] exception, information=Undefined sym: <em>FLAC</em>_stream_encoder_new
是不是说swc里面没有包含静态库?为什么?
提前致谢。
最佳答案
Alchemy 的 swc 链接器没有很好的错误报告,这使得调试变得困难。发生的事情是链接器没有找到库。如何修复:
不幸的是,让它实际链接最终会产生链接时错误:
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 代码生成 Alchemy 无法处理的 LLVM 字节码时,就会发生此错误。 (不清楚这是 LLVM 生成的问题还是 Alchemy 的错误。)
您必须找出有问题的代码在哪里,并将其更改为 Alchemy 喜欢的内容(无需实际更改逻辑!)。我似乎记得有人对 ffmpeg 有类似的问题: http://forums.adobe.com/message/2905914#2905914
关于c++ - 使用 Adobe Alchemy 的 libFLAC 移植问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017993/
我正在使用 libFlac将单声道文件转换为 flac。 我正在使用维基百科 wav 部分的示例文件,可以是 downloaded here example code附带的 libFlac 在文档中说
我已经在 Macintosh os x 10.6.8 下从源代码编译了 libFLAC,并成功测试了 WAV 到 FLAC 的转换(从命令行)。我还使用了默认构建: ./configure --pre
我的目的是为了测试目的解码 flac 数据。我将创建一个小 stub ,它具有一个将数据和大小作为输入参数的函数。不需要制作任何类型的输出文件,因为我只打算进行解码测试。我已经从 libflac 页面
如何使用 libFLAC++ 将 WAV 格式转换为 FLAC(编码.h 和解码.h) 最佳答案 libflac 源压缩包中有一个很好的 C++ 示例。 也可以browse it online (单个
我正在尝试使用 Adobe Alchemy 移植 FLAC 编码器以在 Flash 中使用,但无法找出问题所在。 我在 Windows 上使用 Alchemy for Cygwin。它已正确安装和
我决定用 Objective-C 和 cocoa 编写一个简单的音频转换器,但我无法将 libFlac C 库链接到我的 Xcode 项目。当我尝试这样做时,编译器说: ld: symbol(s) n
我想在我尝试构建的应用程序中使用 libFLAC 动态库,但我不太熟悉 configure 和 make 参数实际上让 FLAC 进行编译。 我尝试过 CC="gcc -m64"CXX="g++ -m
我正在尝试构建 libFLAC 以在我的项目中使用,但是在链接方面,GCC 忽略了该库,因为它说它不是为当前架构 (i386) 构建的。当我以 64 位编译程序时,它正确链接了库,这意味着该库是为 x
如何使用 libFLAC++ ( http://flac.sourceforge.net ) 将 vorbis 评论元数据,即标签(例如“TITLE”)写入现有的 FLAC 文件? 例如: const
我是一名优秀的程序员,十分优秀!