Ich versuche, in C++ - Programmierung zu kommen, und ich kämpfe ziemlich gegen die kleinen Details. Im Moment versuche ich, den Code unten zu arbeiten, und anscheinend wird er kompilieren, aber nicht verknüpfen. (Fehlermeldung ist eine der unteren in diesem Beitrag)Nicht definiert Symbol: _sf_open (Einfaches Audio-Zeug auf OSX)
Ich benutze libsndfile
, um Audiodateien zu öffnen, und der Linker scheint nicht die corrent Bibliotheksdateien dafür zu finden. Dies ist unter OS X 10.5.
Ich habe libsndfile von mega-nerd.com heruntergeladen und installiert über die üblichen configure
, make
, sudo make install
Prozedur. Gibt es noch etwas, was ich tun muss?
Edit: Ich habe Macports auf meinem System installiert, wenn das von Interesse ist.
Hier ist mein Code:
#include <iostream>
#include <string>
#include <sndfile.h>
#include "stereoSplit.h"
using namespace std;
int stereoSplit(string filename)
{
cout << filename;
SF_INFO sfinfo;
sfinfo.format = 0;
SNDFILE * soundfile;
soundfile = sf_open(filename.c_str(), SFM_READ, &sfinfo);
return 0;
}
int main (int argc, char const *argv[])
{
return stereoSplit("testStereo.wav");
}
Und hier ist die komplette Fehlermeldung:
Undefined symbols:
"_sf_open", referenced from:
stereoSplit(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in cc3hvkkk.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
Könnten Sie bitte die Compiler-Aufrufzeile kopieren/einfügen? Es wird helfen, Ihr Problem anzugehen. –
@yves sehen Neil Butterworths Antwort. Meine Zeile war g ++ stereoSplit.cpp -o split. Danke für deine Hilfe, ihr beide! – winsmith