Я искал высоко и низко для ответа на этот вопрос. Я использую boost 1.48, и программа чрезвычайно проста, так как я разбил ее на простейшую форму, чтобы решить эту проблему.
#include <boost/filesystem.hpp>
int main(int argc, char **argv) {
return 0;
}
Команда g++, выполняемая из моего Makefile, выглядит следующим образом:
g++ -m32 -Wall -o mapnik-test -L/usr/lib -I/usr/include -I/usr/include/freetype2 -lpthread -lboost_system mapnik-test.cpp
Полный список ошибок при линковке выглядит следующим образом:
/tmp/ccIbmuee.o: In function `__static_initialization_and_destruction_0(int, int)':
mapnik-test.cpp:(.text+0x49): undefined reference to `boost::system::generic_category()'
mapnik-test.cpp:(.text+0x53): undefined reference to `boost::system::generic_category()'
mapnik-test.cpp:(.text+0x5d): undefined reference to `boost::system::system_category()'
collect2: ld returned 1 exit status
make: *** [mapnik-test] Error 1
Я нашел много людей, страдающих от одной и той же проблемы, но в большинстве случаев решение заключалось в предоставлении системной библиотеки boost _в LDFLAGS. Как вы можете видеть из командной строки g++, я уже указал это. Я даже пытался явно связать библиотеку libboost _system.a безрезультатно. Я единственный человек с этой жалобой?