问题
This question already has an answer here:
- Compiling and linking third party libraries in VS 2015 [duplicate] 1 answer
I am fairly new to C programming and I haven't used Visual Studio or a third party library before. I'm trying to do something simple with FMOD and need to link fmodvclib
, fmod.h
, and of course fmod.dll
.
I've put fmodex_vc.lib
in the additional dependencies and the path to the low level libraries in the include and library directories as well as additional include libraries but when I build it gives me:
"cannot open source file "fmod.h"
identifier "FSOUND_SAMPLE" is undefined
Cannot open include file: 'fmod.h': No such file or directory
but even weirder is:
cannot open source file "stdio.h"
here is the code:
#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();
}
Any help would be appreciated!
回答1:
To link against third party libraries you usually have to do 3 things:
1. You have to add the Include Directory.
In Project > Properties > C/C++->General > Additional Include Directories
Click Edit, and enter the path to the directory where the file "fmod.h" is located.
2. You have to link against the *.lib file.
In Project > Properties > Linker > General > Additional Library Directories
, click Edit and enter the path to your library files.
In Project > Properties > Linker > Input > Additional Dependencies
, click Edit, add the filename of the library you want to link against (in this case this would be most likely "fmodvc.lib")
3. You have to provide the *.dll in your project directory
That your programm will run successfully it has to find the *.dll
file at runtime. You can either place it in a folder referenced by the PATH variable, or in the PWD of your process. This would be right beside your *.vcxproj
files.
If you are linking statically you can skip step 3, if you are loading the dll file dynamically you can skip step 2.
来源:https://stackoverflow.com/questions/35008426/compile-and-link-3rd-party-library-in-visual-studio