J'essaie d'entrer dans la programmation C++, et je me bats contre les petits détails. En ce moment, j'essaie de faire fonctionner l'extrait ci-dessous, et apparemment il va compiler, mais pas de lien. (message d'erreur est un le bas de ce message)Indéfini Symbole: _sf_open (truc audio simple sur OSX)
J'utilise libsndfile
pour ouvrir des fichiers audio, et l'éditeur de liens ne semble pas trouver les fichiers de bibliothèque corrent pour cela. C'est sur OS X 10.5.
J'ai téléchargé libsndfile à partir de mega-nerd.com et l'ai installé via la procédure ususal configure
, make
, sudo make install
. Y a-t-il autre chose que je dois faire? Editer: J'ai installé macports sur mon système, si cela vous préoccupe.
Voici mon 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");
}
Et voici le message d'erreur complète:
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
Pourriez-vous copier/coller la ligne d'invocation du compilateur? Cela aidera à résoudre votre problème. –
@yves voir la réponse de Neil Butterworth. Ma ligne était g ++ stereoSplit.cpp -o split'. Merci pour votre aide, tous les deux! – winsmith