g++ example1.cc ../cpptcl.cc -o mymodule1.so -Wall -Wno-long-long -pedantic -I/usr/local/include/boost-1_33_1 -I.. -I/usr/local/include/tcl8.4 -I/usr/local/include/boost_1_32_0 /usr/lib64/gcc/x86_64-suse-linux/4.0.2/../../../../lib64/crt1.o: In function `_start': ../sysdeps/x86_64/elf/start.S:109: undefined reference to `main' /tmp/cc3WQ2Y4.o: In function `Tcl::details::result::operator bool() const': cpptcl.cc:(.text+0x49): undefined reference to `Tcl_GetObjResult' cpptcl.cc:(.text+0x61): undefined reference to `Tcl_GetBooleanFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::result::operator double() const': cpptcl.cc:(.text+0xe5): undefined reference to `Tcl_GetObjResult' cpptcl.cc:(.text+0xfd): undefined reference to `Tcl_GetDoubleFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::result::operator int() const': cpptcl.cc:(.text+0x183): undefined reference to `Tcl_GetObjResult' cpptcl.cc:(.text+0x19b): undefined reference to `Tcl_GetIntFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::result::operator long() const': cpptcl.cc:(.text+0x217): undefined reference to `Tcl_GetObjResult' cpptcl.cc:(.text+0x22f): undefined reference to `Tcl_GetLongFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::result::operator std::basic_string, std::allocator >() const': cpptcl.cc:(.text+0x2af): undefined reference to `Tcl_GetObjResult' cpptcl.cc:(.text+0x2cd): undefined reference to `Tcl_GetString' /tmp/cc3WQ2Y4.o: In function `Tcl::details::set_result(Tcl_Interp*, bool)': cpptcl.cc:(.text+0x32b): undefined reference to `Tcl_NewBooleanObj' cpptcl.cc:(.text+0x337): undefined reference to `Tcl_SetObjResult' /tmp/cc3WQ2Y4.o: In function `Tcl::details::set_result(Tcl_Interp*, int)': cpptcl.cc:(.text+0x351): undefined reference to `Tcl_NewIntObj' cpptcl.cc:(.text+0x35d): undefined reference to `Tcl_SetObjResult' /tmp/cc3WQ2Y4.o: In function `Tcl::details::set_result(Tcl_Interp*, long)': cpptcl.cc:(.text+0x379): undefined reference to `Tcl_NewLongObj' cpptcl.cc:(.text+0x385): undefined reference to `Tcl_SetObjResult' /tmp/cc3WQ2Y4.o: In function `Tcl::details::set_result(Tcl_Interp*, double)': cpptcl.cc:(.text+0x3ab): undefined reference to `Tcl_NewDoubleObj' cpptcl.cc:(.text+0x3b7): undefined reference to `Tcl_SetObjResult' /tmp/cc3WQ2Y4.o: In function `Tcl::details::set_result(Tcl_Interp*, std::basic_string, std::allocator > const&)': cpptcl.cc:(.text+0x3e9): undefined reference to `Tcl_NewStringObj' cpptcl.cc:(.text+0x3f5): undefined reference to `Tcl_SetObjResult' /tmp/cc3WQ2Y4.o: In function `Tcl::details::set_result(Tcl_Interp*, void*)': cpptcl.cc:(.text+0x47d): undefined reference to `Tcl_NewStringObj' cpptcl.cc:(.text+0x48c): undefined reference to `Tcl_SetObjResult' /tmp/cc3WQ2Y4.o: In function `Tcl::details::set_result(Tcl_Interp*, Tcl::object const&)': cpptcl.cc:(.text+0x521): undefined reference to `Tcl_SetObjResult' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object()': cpptcl.cc:(.text+0x691): undefined reference to `Tcl_NewObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object()': cpptcl.cc:(.text+0x6c7): undefined reference to `Tcl_NewObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(bool)': cpptcl.cc:(.text+0x705): undefined reference to `Tcl_NewBooleanObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(bool)': cpptcl.cc:(.text+0x743): undefined reference to `Tcl_NewBooleanObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(char const*, unsigned long)': cpptcl.cc:(.text+0x78b): undefined reference to `Tcl_NewByteArrayObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(char const*, unsigned long)': cpptcl.cc:(.text+0x7d3): undefined reference to `Tcl_NewByteArrayObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(double)': cpptcl.cc:(.text+0x81b): undefined reference to `Tcl_NewDoubleObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(double)': cpptcl.cc:(.text+0x863): undefined reference to `Tcl_NewDoubleObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(int)': cpptcl.cc:(.text+0x89f): undefined reference to `Tcl_NewIntObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(int)': cpptcl.cc:(.text+0x8db): undefined reference to `Tcl_NewIntObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(long)': cpptcl.cc:(.text+0x919): undefined reference to `Tcl_NewLongObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(long)': cpptcl.cc:(.text+0x957): undefined reference to `Tcl_NewLongObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(char const*)': cpptcl.cc:(.text+0x99a): undefined reference to `Tcl_NewStringObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(char const*)': cpptcl.cc:(.text+0x9de): undefined reference to `Tcl_NewStringObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(std::basic_string, std::allocator > const&)': cpptcl.cc:(.text+0xa33): undefined reference to `Tcl_NewStringObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::object(std::basic_string, std::allocator > const&)': cpptcl.cc:(.text+0xa8d): undefined reference to `Tcl_NewStringObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::init(Tcl_Obj*, bool)': cpptcl.cc:(.text+0xaed): undefined reference to `Tcl_DuplicateObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::result::operator Tcl::object() const': cpptcl.cc:(.text+0xbd5): undefined reference to `Tcl_GetObjResult' /tmp/cc3WQ2Y4.o: In function `Tcl::object::~object()': cpptcl.cc:(.text+0xc54): undefined reference to `TclFreeObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::~object()': cpptcl.cc:(.text+0xc86): undefined reference to `TclFreeObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::assign(bool)': cpptcl.cc:(.text+0xca8): undefined reference to `Tcl_SetBooleanObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::resize(unsigned long)': cpptcl.cc:(.text+0xcd0): undefined reference to `Tcl_SetByteArrayLength' /tmp/cc3WQ2Y4.o: In function `Tcl::object::assign(char const*, unsigned long)': cpptcl.cc:(.text+0xd00): undefined reference to `Tcl_SetByteArrayObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::assign(double)': cpptcl.cc:(.text+0xd30): undefined reference to `Tcl_SetDoubleObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::assign(int)': cpptcl.cc:(.text+0xd54): undefined reference to `Tcl_SetIntObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::assign(long)': cpptcl.cc:(.text+0xd7a): undefined reference to `Tcl_SetLongObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::assign(std::basic_string, std::allocator > const&)': cpptcl.cc:(.text+0xdb6): undefined reference to `Tcl_SetStringObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::assign(char const*)': cpptcl.cc:(.text+0xde7): undefined reference to `Tcl_SetStringObj' /tmp/cc3WQ2Y4.o: In function `bool Tcl::object::get(Tcl::interpreter&) const': cpptcl.cc:(.text+0xed2): undefined reference to `Tcl_GetBooleanFromObj' /tmp/cc3WQ2Y4.o: In function `double Tcl::object::get(Tcl::interpreter&) const': cpptcl.cc:(.text+0xf74): undefined reference to `Tcl_GetDoubleFromObj' /tmp/cc3WQ2Y4.o: In function `int Tcl::object::get(Tcl::interpreter&) const': cpptcl.cc:(.text+0x1018): undefined reference to `Tcl_GetIntFromObj' /tmp/cc3WQ2Y4.o: In function `long Tcl::object::get(Tcl::interpreter&) const': cpptcl.cc:(.text+0x10b2): undefined reference to `Tcl_GetLongFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::get() const': cpptcl.cc:(.text+0x1136): undefined reference to `Tcl_GetString' /tmp/cc3WQ2Y4.o: In function `Tcl::object::get(unsigned long&) const': cpptcl.cc:(.text+0x1174): undefined reference to `Tcl_GetByteArrayFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::object::length(Tcl::interpreter&) const': cpptcl.cc:(.text+0x11bc): undefined reference to `Tcl_ListObjLength' /tmp/cc3WQ2Y4.o: In function `Tcl::object::at(Tcl::interpreter&, unsigned long) const': cpptcl.cc:(.text+0x126a): undefined reference to `Tcl_ListObjIndex' /tmp/cc3WQ2Y4.o: In function `Tcl::object::append(Tcl::interpreter&, Tcl::object const&)': cpptcl.cc:(.text+0x140c): undefined reference to `Tcl_ListObjAppendElement' /tmp/cc3WQ2Y4.o: In function `Tcl::object::append_list(Tcl::interpreter&, Tcl::object const&)': cpptcl.cc:(.text+0x14b6): undefined reference to `Tcl_ListObjAppendList' /tmp/cc3WQ2Y4.o: In function `Tcl::object::replace(Tcl::interpreter&, unsigned long, unsigned long, Tcl::object const&)': cpptcl.cc:(.text+0x1581): undefined reference to `Tcl_ListObjReplace' /tmp/cc3WQ2Y4.o: In function `Tcl::object::replace_list(Tcl::interpreter&, unsigned long, unsigned long, Tcl::object const&)': cpptcl.cc:(.text+0x163a): undefined reference to `Tcl_ListObjGetElements' cpptcl.cc:(.text+0x16d5): undefined reference to `Tcl_ListObjReplace' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::interpreter()': cpptcl.cc:(.text+0x1759): undefined reference to `Tcl_CreateInterp' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::interpreter()': cpptcl.cc:(.text+0x1777): undefined reference to `Tcl_CreateInterp' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::make_safe()': cpptcl.cc:(.text+0x17ed): undefined reference to `Tcl_MakeSafe' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::eval(std::basic_string, std::allocator > const&)': cpptcl.cc:(.text+0x1875): undefined reference to `Tcl_Eval' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::eval(Tcl::object const&)': cpptcl.cc:(.text+0x1916): undefined reference to `Tcl_EvalObjEx' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::pkg_provide(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)': cpptcl.cc:(.text+0x19c6): undefined reference to `Tcl_PkgProvide' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::create_alias(std::basic_string, std::allocator > const&, Tcl::interpreter&, std::basic_string, std::allocator > const&)': cpptcl.cc:(.text+0x1a7e): undefined reference to `Tcl_CreateAlias' /tmp/cc3WQ2Y4.o: In function `Tcl::details::tcl_cast::from(Tcl_Interp*, Tcl_Obj*)': cpptcl.cc:(.text+0x1b02): undefined reference to `Tcl_GetIntFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::tcl_cast::from(Tcl_Interp*, Tcl_Obj*)': cpptcl.cc:(.text+0x1b84): undefined reference to `Tcl_GetLongFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::tcl_cast::from(Tcl_Interp*, Tcl_Obj*)': cpptcl.cc:(.text+0x1c06): undefined reference to `Tcl_GetBooleanFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::tcl_cast::from(Tcl_Interp*, Tcl_Obj*)': cpptcl.cc:(.text+0x1c90): undefined reference to `Tcl_GetDoubleFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::details::tcl_cast, std::allocator > >::from(Tcl_Interp*, Tcl_Obj*)': cpptcl.cc:(.text+0x1d29): undefined reference to `Tcl_GetString' /tmp/cc3WQ2Y4.o: In function `Tcl::details::tcl_cast::from(Tcl_Interp*, Tcl_Obj*)': cpptcl.cc:(.text+0x1d87): undefined reference to `Tcl_GetString' /tmp/cc3WQ2Y4.o: In function `constructor_handler': cpptcl.cc:(.text+0x1ffe): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x2025): undefined reference to `Tcl_GetString' cpptcl.cc:(.text+0x20cf): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x211d): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x2186): undefined reference to `Tcl_GetObjResult' cpptcl.cc:(.text+0x218e): undefined reference to `Tcl_GetString' cpptcl.cc:(.text+0x21ac): undefined reference to `Tcl_CreateObjCommand' cpptcl.cc:(.text+0x2202): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x2254): undefined reference to `Tcl_SetResult' /tmp/cc3WQ2Y4.o: In function `(anonymous namespace)::post_process_policies(Tcl_Interp*, Tcl::policies&, Tcl_Obj* const*, bool)': cpptcl.cc:(.text+0x25e2): undefined reference to `Tcl_GetObjResult' cpptcl.cc:(.text+0x25ea): undefined reference to `Tcl_GetString' cpptcl.cc:(.text+0x2608): undefined reference to `Tcl_CreateObjCommand' cpptcl.cc:(.text+0x2658): undefined reference to `Tcl_GetString' cpptcl.cc:(.text+0x2667): undefined reference to `Tcl_DeleteCommand' cpptcl.cc:(.text+0x2694): undefined reference to `Tcl_GetString' cpptcl.cc:(.text+0x26a3): undefined reference to `Tcl_DeleteCommand' /tmp/cc3WQ2Y4.o: In function `object_handler': cpptcl.cc:(.text+0x2732): undefined reference to `Tcl_GetString' cpptcl.cc:(.text+0x27c4): undefined reference to `Tcl_GetString' cpptcl.cc:(.text+0x2939): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x298b): undefined reference to `Tcl_SetResult' /tmp/cc3WQ2Y4.o: In function `callback_handler': cpptcl.cc:(.text+0x2aab): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x2ad2): undefined reference to `Tcl_GetString' cpptcl.cc:(.text+0x2b7c): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x2bdb): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x2c2f): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x2d01): undefined reference to `Tcl_SetResult' cpptcl.cc:(.text+0x2d53): undefined reference to `Tcl_SetResult' /tmp/cc3WQ2Y4.o: In function `std::basic_string, std::allocator > Tcl::object::get, std::allocator > >(Tcl::interpreter&) const': cpptcl.cc:(.text+0x2f3d): undefined reference to `Tcl_GetStringFromObj' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::clear_definitions(Tcl_Interp*)': cpptcl.cc:(.text+0x3028): undefined reference to `Tcl_DeleteCommand' cpptcl.cc:(.text+0x30de): undefined reference to `Tcl_DeleteCommand' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::~interpreter()': cpptcl.cc:(.text+0x3170): undefined reference to `Tcl_DeleteInterp' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::~interpreter()': cpptcl.cc:(.text+0x31a2): undefined reference to `Tcl_DeleteInterp' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::add_constructor(std::basic_string, std::allocator > const&, boost::shared_ptr, boost::shared_ptr, Tcl::policies const&)': cpptcl.cc:(.text+0x3619): undefined reference to `Tcl_CreateObjCommand' /tmp/cc3WQ2Y4.o: In function `Tcl::interpreter::add_function(std::basic_string, std::allocator > const&, boost::shared_ptr, Tcl::policies const&)': cpptcl.cc:(.text+0x36ac): undefined reference to `Tcl_CreateObjCommand' /tmp/cc3WQ2Y4.o: In function `Tcl::tcl_error::tcl_error(Tcl_Interp*)': cpptcl.cc:(.gnu.linkonce.t._ZN3Tcl9tcl_errorC1EP10Tcl_Interp[Tcl::tcl_error::tcl_error(Tcl_Interp*)]+0x1f): undefined reference to `Tcl_GetObjResult' cpptcl.cc:(.gnu.linkonce.t._ZN3Tcl9tcl_errorC1EP10Tcl_Interp[Tcl::tcl_error::tcl_error(Tcl_Interp*)]+0x27): undefined reference to `Tcl_GetString' /tmp/cc3WQ2Y4.o: In function `Tcl::object& Tcl::object::assign(Tcl_Obj* const*, Tcl_Obj* const*)': cpptcl.cc:(.gnu.linkonce.t._ZN3Tcl6object6assignIPKP7Tcl_ObjEERS0_T_S7_[Tcl::object& Tcl::object::assign(Tcl_Obj* const*, Tcl_Obj* const*)]+0x85): undefined reference to `Tcl_SetListObj' collect2: ld returned 1 exit status make: *** [mymodule1.so] Error 1