Please update id3lib to increase portabliity and simplify compiling it. Most importantly, consider changing the source code to be C instead of C++.
The current source code breaks in many areas when compiling on non GNU GCC / non-linux environments.
The use of C++ is mainly cosmetic in the current source code given that there is no complex object inheritance model.
Specific compiler problems:
#include <id3/abc.h> includes fail because the '<''>' indicate a system include file and not one specific to the application. Use #include "id3/abc.h"
Putting a space between the '#' and the pre-processor directive break in many compilers. This appears to be used to indent the '#ifdef' preprocessor directives.
Minimize the use of compiler switches since these are mostly not portable.
Build problems:
Autoconfig / configure only work on Unix and linux platforms. Provide simple include file defines/switches for different platforms. More importantly, minimize the use of non-standard / non-POSIX api/CRT functions (e.g., truncate() does not exist on win32).