我已经从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 路径,因此它不起作用。

10-08 03:34