bjam w/ minggc g++-3.4.5-20060117: undefined reference
Hi, I'm building boost_1_33_1 on mingw win32 environment via: boost-jam-3.1.3-1-ntx86/bjam.exe -sTOOLS=mingw stage Everything goes fine and most libraries are built and run without problems, except for link-time errors of "undefined references" for the following functions: "boost::filesystem::detail::system_error_code()" "boost::filesystem::filesystem_error::~filesystem_error()" "boost::filesystem::filesystem_error::filesystem_error(...)" "vtable for boost::filesystem::filesystem_error" "boost::archive::ARCHIVE_VERSION()" "boost::archive::ARCHIVE_SIGNATURE()" "boost::signals::trackable::signal_connected(...)" It seems some of the object files doesn't get picked up while building their corresponding libraries; for example, ARCHIVE_VERSION() and ARCHIVE_SIGNATURE() are defined in libs/serialization/src/basic_archive.cpp file, which are compiled correctly into basic_archive.obj, yet somehow the bjam link process cannot find it while building the Serialization library. If I inline the definition of ARCHIVE_VERSION() and ARCHIVE_SIGNATURE() into its declaration header file of boost/archive/basic_archive.hpp, the the Serialization library is built without problem. This shows that I'm probably missing something for the above build command. Also, in my mingw win32 build output of stage/lib directory, the corresponding libraries with the above "undefined references" (libboost_filesystem-mgw-*, libboost_serialization-mgt-*, and libboost_signals-mgw-*) are generated as a result of the above bjam build command, even though mingw's ld.exe doesn't recognize these lib files. Is this a bug in bjam logic? Here's my mingw win32 environment: * MSYS-1.0.11-2004.04.30-1 * msysDTK-1.0.1 * binutils-2.16.91-20060119-1 * gcc-core-3.4.5-20060117-1 * gcc-g++-3.4.5-20060117-1 * w32api-3.7 * mingw-runtime-3.10 * mingw-utils-0.3 Attached is the excerpt of above undefined reference errors. I'm not familiar with bjam; it'd be great if someone can shed lights on what's wrong. (please cc me as I'm not subscribed to the list) ------------- begin: bjam build output ------------ FileClone stage\lib\boost_date_time-mgw-mt-d-1_33_1.lib gcc-Link-action bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\boost_filesystem-mgw-d-1_33_1.dll bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\boost_filesystem-mgw-d-1_33_1.lib Creating library file: bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\boost_filesystem-mgw-d-1_33_1.lib bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\operations_posix_windows.obj: In function `ZN5boost10filesystem6detail12dir_itr_initERNS_10shared_ptrINS1_11dir_itr_impEEERKNS0_4pathE':c:/e2e/win32/ref/boost/boost_1_33_1/libs/filesystem/build/../src/operations_posix_windows.cpp:308: undefined reference to `boost::filesystem::detail::system_error_code()' :c:/e2e/win32/ref/boost/boost_1_33_1/libs/filesystem/build/../src/operations_posix_windows.cpp:308: undefined reference to `boost::filesystem::filesystem_error::filesystem_error(std::string const&, boost::filesystem::path const&, int)' :c:/e2e/win32/ref/boost/boost_1_33_1/libs/filesystem/build/../src/operations_posix_windows.cpp:308: undefined reference to `boost::filesystem::filesystem_error::~filesystem_error()' .... :c:/e2e/win32/ref/boost/boost_1_33_1/boost/iterator/iterator_facade.hpp:(.text$_ZN5boost10filesystem16filesys tem_errorC1ERKS1_[boost::filesystem::filesystem_error::filesystem_error(boost::filesystem::filesystem_error const&)]+0x4c): undefined reference to `vtable for boost::filesystem::filesystem_error' .... "g++" "-Wl,--enable-auto-image-base" "-Wl,--exclude-symbols,_bss_end__:_bss_start__:_data_end__:_data_start__" "-Wl,--out-implib,bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\boost_filesystem-mgw-mt-1_33_1.lib" -mthreads -s -shared -Wl,--allow-multiple-definition -mno-cygwin -o "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\boost_filesystem-mgw-mt-1_33_1.dll" -L"" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\exception.obj" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\operations_posix_windows.obj" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\path_posix_windows.obj" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\convenience.obj" ...failed gcc-Link-action bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\boost_filesystem-mgw-mt-1_33_1.dll bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\boost_filesystem-mgw-mt-1_33_1.lib... ...removing bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\release\threading-multi\boost_filesystem-mgw-mt-1_33_1.lib ...skipped <@boost!lib>boost_filesystem-mgw-mt-1_33_1.dll for lack of <@boost!libs!filesystem!build\boost_filesystem.dll\mingw\release\threading-multi>boost_filesystem-mgw-mt-1_33_1.dll... ...skipped <@boost!lib>boost_filesystem-mgw-mt-1_33_1.lib for lack of <@boost!libs!filesystem!build\boost_filesystem.dll\mingw\release\threading-multi>boost_filesystem-mgw-mt-1_33_1.lib... FileClone stage\lib\boost_program_options-mgw-d-1_33_1.lib FileClone stage\lib\boost_program_options-mgw-mt-d-1_33_1.lib FileClone stage\lib\boost_python-mgw-d-1_33_1.lib FileClone stage\lib\boost_python-mgw-mt-d-1_33_1.lib FileClone stage\lib\boost_python-mgw-1_33_1.lib FileClone stage\lib\boost_python-mgw-mt-1_33_1.lib FileClone stage\lib\boost_regex-mgw-d-1_33_1.lib FileClone stage\lib\boost_regex-mgw-mt-d-1_33_1.lib FileClone stage\lib\boost_regex-mgw-1_33_1.lib gcc-Link-action bin\boost\libs\serialization\build\boost_serialization.dll\mingw\debug\boost_serialization-mgw-d-1_33_1.dll bin\boost\libs\serialization\build\boost_serialization.dll\mingw\debug\boost_serialization-mgw-d-1_33_1.lib Creating library file: bin\boost\libs\serialization\build\boost_serialization.dll\mingw\debug\boost_serialization-mgw-d-1_33_1.lib bin\boost\libs\serialization\build\boost_serialization.dll\mingw\debug\basic_iarchive.obj: In function `ZSt38__copy_backward_output_normal_iteratorIPN5boost7archive6detail19basic_iarchive_impl10cobject_idEN9__gnu_cxx17__normal_iteratorIS5_St6vectorIS4_SaIS4_EEEEET0_T_SD_SC_11__true_type':c:/e2e/win32/ref/boost/boost_1_33_1/libs/serialization/build/../src/basic_iarchive.cpp:(.text$_ZN5boost7archive6detail19basic_iarchive_implC1Ej[boost::archive::detail::basic_iarchive_impl::basic_iarchive_impl(unsigned int)]+0x52): undefined reference to `boost::archive::ARCHIVE_VERSION()' ..... ' bin\boost\libs\serialization\build\boost_serialization.dll\mingw\debug\binary_iarchive.obj: In function `ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEE13load_overrideINS0_13tracking_typeEEEvRT_i':c:/e2e/win32/ref/boost/boost_1_33_1/boost/archive/binary_iarchive.hpp:(.text$_ZN5boost7archive21basic_binary_iarchiveINS0_15binary_iarchiveEE4initEv[boost::archive::basic_binary_iarchiveboost::archive::binary_iarchive::init()]+0x6e): undefined reference to `boost::archive::ARCHIVE_SIGNATURE()' ..... "g++" "-Wl,--enable-auto-image-base" "-Wl,--exclude-symbols,_bss_end__:_bss_start__:_data_end__:_data_start__" "-Wl,--out-implib,bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\boost_serialization-mgw-mt-1_33_1.lib" -mthreads -s -shared -Wl,--allow-multiple-definition -mno-cygwin -o "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\boost_serialization-mgw-mt-1_33_1.dll" -L"" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_archive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_archive_impl.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_iarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_oarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_iserializer.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_oserializer.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_pointer_iserializer.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_pointer_oserializer.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_serializer_map.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_text_iprimitive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_text_oprimitive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\basic_xml_archive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\binary_iarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\binary_oarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\extended_type_info.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\extended_type_info_no_rtti.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\extended_type_info_typeid.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\polymorphic_iarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\polymorphic_oarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\stl_port.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\text_iarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\text_oarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\void_cast.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\xml_grammar.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\xml_iarchive.obj" "bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\xml_oarchive.obj" ...failed gcc-Link-action bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\boost_serialization-mgw-mt-1_33_1.dll bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\boost_serialization-mgw-mt-1_33_1.lib... ...removing bin\boost\libs\serialization\build\boost_serialization.dll\mingw\release\threading-multi\boost_serialization-mgw-mt-1_33_1.lib ...skipped <@boost!lib>boost_serialization-mgw-mt-1_33_1.dll for lack of <@boost!libs!serialization!build\boost_serialization.dll\mingw\release\threading-multi>boost_serialization-mgw-mt-1_33_1.dll... ...skipped <@boost!lib>boost_serialization-mgw-mt-1_33_1.lib for lack of <@boost!libs!serialization!build\boost_serialization.dll\mingw\release\threading-multi>boost_serialization-mgw-mt-1_33_1.lib... gcc-Link-action bin\boost\libs\signals\build\boost_signals.dll\mingw\debug\boost_signals-mgw-d-1_33_1.dll bin\boost\libs\signals\build\boost_signals.dll\mingw\debug\boost_signals-mgw-d-1_33_1.lib Creating library file: bin\boost\libs\signals\build\boost_signals.dll\mingw\debug\boost_signals-mgw-d-1_33_1.lib bin\boost\libs\signals\build\boost_signals.dll\mingw\debug\slot.obj: In function `ZN5boost7signals6detail9slot_base17create_connectionEv':c:/e2e/win32/ref/boost/boost_1_33_1/libs/signals/build/../src/slot.cpp:47: undefined reference to `boost::signals::trackable::signal_connected(boost::signals::connection, boost::signals::detail::bound_object&) const' collect2: ld returned 1 exit status ...... ...failed gcc-Link-action bin\boost\libs\signals\build\boost_signals.dll\mingw\release\threading-multi\boost_signals-mgw-mt-1_33_1.dll bin\boost\libs\signals\build\boost_signals.dll\mingw\release\threading-multi\boost_signals-mgw-mt-1_33_1.lib... ...removing bin\boost\libs\signals\build\boost_signals.dll\mingw\release\threading-multi\boost_signals-mgw-mt-1_33_1.lib ...skipped <@boost!lib>boost_signals-mgw-mt-1_33_1.dll for lack of <@boost!libs!signals!build\boost_signals.dll\mingw\release\threading-multi>boost_signals-mgw-mt-1_33_1.dll... ...skipped <@boost!lib>boost_signals-mgw-mt-1_33_1.lib for lack of <@boost!libs!signals!build\boost_signals.dll\mingw\release\threading-multi>boost_signals-mgw-mt-1_33_1.lib... FileClone stage\lib\boost_thread-mgw-mt-d-1_33_1.lib HardLink stage\lib\boost_date_time-mgw-mt-d.lib ...skipped <@boost!lib>boost_filesystem-mgw-d.lib for lack of <@boost!lib>boost_filesystem-mgw-d-1_33_1.lib... ...skipped <@boost!lib>boost_filesystem-mgw-mt-d.lib for lack of <@boost!lib>boost_filesystem-mgw-mt-d-1_33_1.lib... ...skipped <@boost!lib>boost_filesystem-mgw.lib for lack of <@boost!lib>boost_filesystem-mgw-1_33_1.lib... ...skipped <@boost!lib>boost_filesystem-mgw-mt.lib for lack of <@boost!lib>boost_filesystem-mgw-mt-1_33_1.lib... HardLink stage\lib\boost_program_options-mgw-d.lib HardLink stage\lib\boost_program_options-mgw-mt-d.lib HardLink stage\lib\boost_python-mgw-d.lib HardLink stage\lib\boost_python-mgw-mt-d.lib HardLink stage\lib\boost_python-mgw.lib HardLink stage\lib\boost_python-mgw-mt.lib HardLink stage\lib\boost_regex-mgw-d.lib HardLink stage\lib\boost_regex-mgw-mt-d.lib HardLink stage\lib\boost_regex-mgw.lib ...skipped <@boost!lib>boost_serialization-mgw-d.lib for lack of <@boost!lib>boost_serialization-mgw-d-1_33_1.lib... ...skipped <@boost!lib>boost_serialization-mgw-mt-d.lib for lack of <@boost!lib>boost_serialization-mgw-mt-d-1_33_1.lib... ...skipped <@boost!lib>boost_serialization-mgw.lib for lack of <@boost!lib>boost_serialization-mgw-1_33_1.lib... ...skipped <@boost!lib>boost_serialization-mgw-mt.lib for lack of <@boost!lib>boost_serialization-mgw-mt-1_33_1.lib... ...skipped <@boost!lib>boost_signals-mgw-d.lib for lack of <@boost!lib>boost_signals-mgw-d-1_33_1.lib... ...skipped <@boost!lib>boost_signals-mgw-mt-d.lib for lack of <@boost!lib>boost_signals-mgw-mt-d-1_33_1.lib... ...skipped <@boost!lib>boost_signals-mgw.lib for lack of <@boost!lib>boost_signals-mgw-1_33_1.lib... ...skipped <@boost!lib>boost_signals-mgw-mt.lib for lack of <@boost!lib>boost_signals-mgw-mt-1_33_1.lib... HardLink stage\lib\boost_thread-mgw-mt-d.lib ...failed updating 24 targets... ...skipped 36 targets... ...updated 22 targets... ------------- end: bjam build output ------------ Thanks, --- Jeffrey
participants (1)
-
Jeffrey Chang