Скомпилируйте и свяжите стороннюю библиотеку в Visual Studio

Я новичок в программировании на C и раньше не использовал Visual Studio или сторонние библиотеки. Я пытаюсь сделать что-то простое с FMOD, и мне нужно связать fmodvclib, fmod.h и, конечно же, fmod.dll.

Я поместил fmodex_vc.lib в дополнительные зависимости и путь к низкоуровневым библиотекам в каталогах include и library, а также к дополнительным библиотекам include, но когда я собираю, это дает мне:

"cannot open source file "fmod.h"
identifier "FSOUND_SAMPLE" is undefined
Cannot open include file: 'fmod.h': No such file or directory

но еще страннее:

cannot open source file "stdio.h"

вот код:

#include "fmod.h"
#include <stdio.h>

FSOUND_SAMPLE* handle;

int main(void)
{
    int input;

    FSOUND_Init(44100, 32, 0);

    handle = FSOUND_Sample_Load(0, "test.ogg", 0, 0, 0);
    FSOUND_PlaySound(0, handle);

    while (input != 0)
    {
        scanf_s("&d", &input);
    }

    FSOUND_Sample_Free(handle);
    FSOUND_Close();
}

Любая помощь будет оценена по достоинству!


person user5840403    schedule 26.01.2016    source источник
comment
Когда вы добавляете путь к файлам заголовков в INCLUDE_PATH, вы должны использовать #include ‹filename› вместо #include filename. двойные кавычки должны использоваться для файлов заголовков, которые находятся в каталоге проекта.   -  person payman    schedule 26.01.2016
comment
@payman Хорошо, я попробовал это и получил те же ошибки.   -  person user5840403    schedule 26.01.2016


Ответы (1)


Чтобы связать сторонние библиотеки, вам обычно нужно сделать 3 вещи:

<сильный>1. Вы должны добавить каталог Include.

In Project > Properties > C/C++->General > Additional Include Directories

Нажмите «Изменить» и введите путь к каталогу, в котором находится файл «fmod.h».

<сильный>2. Вы должны сделать ссылку на файл *.lib.

В Project > Properties > Linker > General > Additional Library Directories нажмите «Изменить» и введите путь к файлам вашей библиотеки.

В Project > Properties > Linker > Input > Additional Dependencies нажмите «Изменить», добавьте имя файла библиотеки, с которой вы хотите связать (в этом случае это, скорее всего, «fmodvc.lib»)

<сильный>3. Вы должны предоставить *.dll в каталоге вашего проекта

Чтобы ваша программа работала успешно, она должна найти файл *.dll во время выполнения. Вы можете поместить его либо в папку, на которую ссылается переменная PATH, либо в PWD вашего процесса. Это будет прямо рядом с вашими *.vcxproj файлами.

Если вы подключаетесь статически, вы можете пропустить шаг 3, если вы загружаете файл dll динамически, вы можете пропустить шаг 2.

person EGOrecords    schedule 26.01.2016
comment
Спасибо за этот хороший ответ. Есть ли способ в VS2017 добавить каталог времени выполнения в параметры проекта для поиска DLL? Что-то вроде ./bin или совершенно другой каталог, например C:/SomeSDK/bin? В основном, чтобы избежать копирования всех dll. Спасибо. - person PinkTurtle; 26.05.2018
comment
В VS2017 нет проекта › Свойства › Линкер - person user2445507; 28.07.2019