2016-04-28 75 views
0

我使用libsndfileportaudio.wav文件播放音頻和我收到一些奇怪的未定義引用錯誤使用時的sf_open(const char*, int, SF_INFO*)前顯示錯誤,下面是一些基本信息:我在Windows 10上使用MinGW 3.21(由於IDE約束無法升級),CMake作爲我的編譯系統。我已驗證傳遞給sf_openconst char*是一個有效的文件名,我檢查了沒有其他代碼行導致此編譯錯誤。事不宜遲,有一些可愛的錯誤:libsndfile - sf_open():(?在<code>time.h</code> ...)在time.h中未定義的引用

libsndfile/lib/libsndfile.a(aiff.o): In function time': 
c:/dwimperl/c/bin/../lib/gcc/i686-w64-mingw32 
/4.4.7/../../../../i686-w64-mingw32/include/time.h:242: 
undefined reference to _time32' 

這幾次打印,可能是因爲該功能time使用了很多sf_open雖然我還沒有線索,爲什麼。這同樣會發生:

In function `gmtime': 
c:/dwimperl/c/bin/../lib/gcc/i686-w64- 
mingw32/4.4.7/../../../../i686-w64-mingw32/include/time.h:240: 
undefined reference to `_gmtime32' 

這些錯誤意味着sf_opentime.h之間沒有相關性,但我甚至嘗試以下,

#include<sndfile.h> 

int main { 
    sf_open(nullptr, 0, nullptr); 
    return 0; 
} 

,並得到相同的結果。我在與編譯的二進制文件相同的目錄中有libsndfile-1.dll,並且鏈接到libsndfile.alibsndfile.dll.a。我已經嘗試連接到libsndfile.a,結果相同。但是,我想鏈接只libsndfile.dll.a和編譯的程序,但隨後崩潰,他說:

An error occured while using the portaudio stream 
Error number: -9984 
Error message: Incompatible host API specific stream info 

我不知道是否那是後話了另一個問題,但我想我會提到它,看到sf_open,錯誤的功能,似乎做了一些與流信息。無論如何,這是我得到的。幫助表示讚賞!

回答

0

看着我是這樣一個天才,回答這個問題,問問題,然後不注意。有時候我想知道我還活着。無論如何,這很簡單。不要鏈接libsndfile.a,只需libsndfile.dll.a。就這樣。 PortAudio錯誤是完全不相關的。對白癡抱歉,希望這有助於至少一個人......?