我已经从macintosh os x 10.6.8下的源代码编译了libFLAC,并成功地测试了WAV至FLAC的转换(从命令行)。我还使用了默认的构建,例如:./configure --prefix =“$ base / flac / more /” --exec-prefix =“$ base / flac / main /” --disable-asm-optimizations && make &&进行安装
现在,将FLAC header 和库的路径添加到一个全新的项目中之后。我试图使用libFLAC附带的示例代码,使用libFLAC解码并将FLAC音频加载到系统内存中。但是我在使用Standard C时收到symbols not found
错误,而在使用Standard C++时出现vtable symbols not found
错误(如下所示)。Errors under the C approach:
引用自“FLAC_stream_decoder_get_state”:
_main in main.o
从以下引用的“FLAC_stream_decoder_new”:
_main in main.o
“FLAC_StreamDecoderStateString”,引用自:
_main in main.o
从以下位置引用的“FLAC_StreamDecoderErrorStatusString”:
error_callback(FLAC__StreamDecoder const*,
main.o中的FLAC__StreamDecoderErrorStatus,void *)
从以下位置引用的“FLAC_stream_decoder_init_file”:
_main in main.o
“FLAC_StreamDecoderInitStatusString”,引用自:
_main in main.o
引用自以下内容的“FLAC_stream_decoder_set_md5_checking”
_main in main.o
“FLAC_stream_decoder_process_until_end_of_stream”,引用自:
_main in main.o
引用自“FLAC_stream_decoder_delete”:
_main in main.o
ld:找不到符号
collect2:ld返回1退出状态
从我可以理解的是:链接器没有看到libs(因为它看到了 header )或者libFLAC没有正确编译。如果有人给我指出这些错误的可能解决方案,我将不胜感激。
最佳答案
我做的链接不正确。链接需要根据此stackoverflow post Adding static library inside Xcode C++ project
(How to add static libraries inside a C++ project with Xcode)完成,但是我在Project Setting
下添加了链接目录,并在其中添加了 header 路径,因此它不起作用。