Проблема с связыванием libsndfile в Visual Studio 2010 Express

Я пытался использовать libsndfile (это 64-битная версия Windows) в первый раз и столкнулся с проблемой при попытке связать его. Всякий раз, когда я пытаюсь скомпилировать программу, я получаю эту ошибку:

ошибка LNK2019: ссылка на неразрешенный внешний символ _sf_close в функции _main

Это процесс, который я сделал до сих пор, чтобы попытаться связать его с программой.

В свойствах проекта я зашел в Config. Prop.-> VC++ Directorys и добавили путь к файлам заголовков на вкладку include directorys, а путь к файлам .lib — на вкладку директорий библиотек.

В C/C++-> General-> Additional Include Directory я добавил путь к заголовочным файлам.

В Linker->Input->Additional Dependencies я добавил путь к файлу .lib, для меня это C:\Program Files\Mega-Nerd\libsndfile\lib\libsndfile-1.lib

Я добавил #include "sndfile.h" в файл .cpp, но по какой-то причине он не имеет доступа к функциям в dll. Я на самом деле не очень много знаю о ссылках, и то, что я сделал, это всего лишь то, что я смог собрать воедино из поиска в Интернете, поэтому я не совсем уверен, что я делаю неправильно или правильно. Любая помощь приветствуется.


person Msquared    schedule 05.08.2012    source источник


Ответы (1)


Вероятно, вы компилируете 32-битный проект в Visual Studio и пытаетесь связать его с 64-битной библиотекой. Это не сработает... загрузите 32-битную версию двоичного файла libsndfile для Windows и используйте ее для ссылки на свой исполняемый файл. Другой вариант — создать 64-битный проект, но я думаю, что первый вариант (немного) проще.

person Itamar Katz    schedule 15.08.2012