Source-based or binary-based library?

Hello, I currently working on a general library and I'm wondering if I should distribute it to be used as source (like the boost library) or use precompiled library files (like dlls)? I really like the simplicity of the boost library because you only need to include its headers, but as far as I tried I can't get my library so that you only need to include headers (constantly getting multiple definition errors). I have tried the precompiled library road (and got it working), but its cross-platform and I'm still struggling with CMake. Any suggestions on how I should proceed? My DIR structure looks like this:

src/
........source files
include/
........header files
When you get 'multiple definition errors' you probably forgot Include guard:

http://en.wikipedia.org/wiki/Include_guard

and/or

#pragma once
http://en.wikipedia.org/wiki/Pragma_once


A header only library works only with templates. boost is [unfortunately] not just header only.
Thanks for the fast reply, all the headers are include guarded. So there is no way I can include the source with the header (I got the multiple defenition errors when #including the source files in the header) so I can just use the headers in a project?
Topic archived. No new replies allowed.