Hi, i get

undefined reference to 'boost::gregorian::greg_month::get_month_map_ptr() '

on the following code using Eclipse CDT and MinGW ..

#include "boost/date_time/gregorian/gregorian.hpp"
#include <iostream>

int main()
{
	using namespace boost::gregorian;
	std::string s;
	std::cout << "Enter birth day YYYY-MM-DD (eg: 2002-02-01): ";
	std::cin >> s;

	try {
		date birthday(from_simple_string(s));
		date today = day_clock::local_day();
		days days_alive = today - birthday;
		days one_day(1);
		if (days_alive == one_day) {
			std::cout << "Born yesterday, very funny" << std::endl;
		}
		else if (days_alive < days(0)) {
			std::cout << "Not born yet, hmm: " << days_alive.days()
                		<< " days" <<std::endl;
		}
		else {
			std::cout << "Days alive: " << days_alive.days() << std::endl;
		}

	}
	catch(...) {
		std::cout << "Bad date entered: " << s << std::endl;
	}
	return 0;
}

Other Boost lib work fine ...

Most, but not all, Boost libraries are header-only libraries; most often, there's nothing to build.

However, a few libraries must be built separately. Boost DateTime has a binary component that is needed if you're using its to_string/from_string or serialization features.

If you do not have the binaries installed, you need to build the boost libraries first to be able to use from_simple_string(). For detailed instructions on how to do this, and the compiler/linker options for linking to the libraries, see:
http://www.boost.org/doc/libs/1_41_0/more/getting_started/unix-variants.html#get-bjam

This article has been dead for over six months. Start a new discussion instead.