diff options
Diffstat (limited to 'include/FLAC/export.h')
-rw-r--r-- | include/FLAC/export.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/include/FLAC/export.h b/include/FLAC/export.h index cde72b73..983f13b1 100644 --- a/include/FLAC/export.h +++ b/include/FLAC/export.h @@ -49,13 +49,24 @@ * This module contains \#defines and symbols for exporting function * calls, and providing version information and compiled-in features. * - * If you are compiling with MSVC and will link to the static library - * (libFLAC.lib) you should define FLAC__NO_DLL in your project to - * make sure the symbols are exported properly. + * If you are compiling for Windows (with Visual Studio or MinGW for + * example) and will link to the static library (libFLAC++.lib) you + * should define FLAC__NO_DLL in your project to make sure the symbols + * are exported properly. * * \{ */ +/** This \#define is used internally in libFLAC and its headers to make + * sure the correct symbols are exported when working with shared + * libraries. On Windows, this \#define is set to __declspec(dllexport) + * when compiling libFLAC into a library and to __declspec(dllimport) + * when the headers are used to link to that DLL. On non-Windows systems + * it is used to set symbol visibility. + * + * Because of this, the define FLAC__NO_DLL must be defined when linking + * to libFLAC statically or linking will fail. + */ /* This has grown quite complicated. FLAC__NO_DLL is used by MSVC sln * files and CMake, which build either static or shared. autotools can * build static, shared or **both**. Therefore, DLL_EXPORT, which is set |