There is an #error
directive on line 56 of globals.h
:
#ifdef WIN32
# define LINKOPTION_STATIC 1 //both for use and creation of static lib
# define LINKOPTION_CREATE_DYNAMIC 2 //should only be used by prj/id3lib.dsp
# define LINKOPTION_USE_DYNAMIC 3 //if your project links id3lib dynamic
# ifndef ID3LIB_LINKOPTION
# pragma message("*** NOTICE *** (not a real error)")
# pragma message("* You should include a define in your project which reflect how you link the library")
# pragma message("* If you use id3lib.lib or libprj/id3lib.dsp (you link static) you should add")
# pragma message("* ID3LIB_LINKOPTION=1 to your preprocessor definitions of your project.")
# pragma message("* If you use id3lib.dll (you link dynamic) you should add ID3LIB_LINKOPTION=3")
# pragma message("* to your preprocessor definitions of your project.")
# pragma message("***")
# error read message above or win32.readme.first.txt // <-- HERE
The compiler reaches the #error
if WIN32
is defined but ID3LIB_LINKOPTION
is NOT defined.
As you can see in the "message above", you need to manually define ID3LIB_LINKOPTION
in your project according to how you are linking to the ID3 library. You have not done that yet, which is why you are getting the error.
Go into your Project Options and add an entry for ID3LIB_LINKOPTION=3
(since you are using the DLL version of the ID3 library) in the Conditionals section. Or, put a #define ID3LIB_LINKOPTION 3
statement in your C++ code above any #include
statements for ID3 header files.
Also, make sure you add your generated id3lib.lib
file to your project using the Project Manager, or put a #pragma comment(lib, "id3lib.lib")
directive somewhere in your C++ code.