你如何为Windows构建mpg123并链接它?

时间:2016-10-24 15:38:33

标签: c++ windows

问题&背景 我是一名新手程序员,拥有几年的常规编程经验。我不是专家,但我仍然有点不像是一个菜鸟。我一直试图用以下代码播放MP3文件。

void loadMp3File(const char* filename)
{
    mpg123_handle *mh;
    unsigned char *buffer;
    size_t buffer_size;
    size_t done;
    int err;

    int channels, encoding;
    long rate;

    mpg123_init();
    mh = mpg123_new(NULL, &err);
    buffer_size = mpg123_outblock(mh);
    buffer = (unsigned char*) malloc(buffer_size * sizeof(unsigned char));

    mpg123_open(mh, filename);
    mpg123_getformat(mh, &rate, &channels, &encoding);

    int m_bits = mpg123_encsize(encoding);
    int m_rate = rate;
    int m_channels = channels;


    /* decode and play */
    for (int totalBtyes = 0 ; mpg123_read(mh, buffer, buffer_size, &done) == MPG123_OK ; ) {
        totalBtyes += done;
    }


    /* clean up */
    free(buffer);
    mpg123_close(mh);
    mpg123_delete(mh);
    mpg123_exit();

}

到目前为止我做了什么 我花了几天时间搞乱,使用mpg123源代码中包含的Visual Studio文件。我在设置中更改并混淆了其他依赖项,经过多次尝试和错误,我能够生成一个库文件。尽管我试图修复它,但它只是产生了一英里的链接器错误。

结论 我的问题是如何解决这个问题或者我应该做出其他考虑?无论哪种方式,都要提前感谢任何花时间回答这个问题的人。

如果需要,可能会出现一些错误

libmpg123.lib(index.obj) : error LNK2001: unresolved external symbol _INT123_saf
e_realloc
libmpg123.lib(optimize.obj) : error LNK2001: unresolved external symbol _INT123_
dct36_sse
libmpg123.lib(icy2utf8.obj) : error LNK2001: unresolved external symbol _INT123_
compat_strdup
main.exe : fatal error LNK1120: 3 unresolved externals

只是想补充一点,这个问题与将此标记为重复的问题完全无关。它没有提供明确或有意义的问题描述。

0 个答案:

没有答案