The reason that this appears to be happening is that in 1_33_1 the link line for these libraries includes -L"" . The empty quotes get ignored and the following file is incorrectly to be taken to be a directory and its symbols don't get linked in. Here it is in context: "g++" "-Wl,--enable-auto-image-base" "-Wl,--exclude-symbols,_bss_end__:_bs s_start__:_data_end__:_data_start__" "-Wl,--out-implib,bin\boost\libs\filesyste m\build\boost_filesystem.dll\mingw\debug\boost_filesystem-mgw-d-1_33_1.lib" -g -shared -Wl,--allow-multiple-definition -mno-cygwin -o "bin\boost\libs\filesyst em\build\boost_filesystem.dll\mingw\debug\boost_filesystem-mgw-d-1_33_1.dll" - L"" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\exception .obj" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\operatio ns_posix_windows.obj" "bin\boost\libs\filesystem\build\boost_filesystem.dll\ming w\debug\path_posix_windows.obj" "bin\boost\libs\filesystem\build\boost_filesyste m.dll\mingw\debug\convenience.obj" Dave Compton wrote:
When I try to build boost 1_33_1 with mingw ( gcc 3.4.2 ) some libraries don't link properly. At the end of the build process, the following files are missing :
The reason that this appears to be happening is that in 1_33_1 the link line for these libraries includes -L"" . The empty quotes get ignored and the following file is incorrectly to be taken to be a directory and its symbols don't get linked in. Here it is in context: "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\debug\boost_filesystem-mgw-d-1_33_1.lib" -g -shared -Wl,--allow-multiple-definition -mno-cygwin -o "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\boost_filesystem-mgw-d-1_33_1.dll" -L"" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\exception.obj" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\operations_posix_windows.obj" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\path_posix_windows.obj" "bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\convenience.obj" This does not happen in 1_33_0. Can anyone tell me how to work around it? Would it be possible to fix this in the next boost release? Thanks. - Dave
boost_filesystem-mgw-1_33_1.dll boost_filesystem-mgw-1_33_1.lib boost_filesystem-mgw-d-1_33_1.dll boost_filesystem-mgw-d-1_33_1.lib boost_filesystem-mgw-d.lib boost_filesystem-mgw-mt-1_33_1.dll boost_filesystem-mgw-mt-1_33_1.lib boost_filesystem-mgw-mt-d-1_33_1.dll boost_filesystem-mgw-mt-d-1_33_1.lib boost_filesystem-mgw-mt-d.lib boost_filesystem-mgw-mt.lib boost_filesystem-mgw.lib
boost_serialization-mgw-1_33_1.dll boost_serialization-mgw-1_33_1.lib boost_serialization-mgw-d-1_33_1.dll boost_serialization-mgw-d-1_33_1.lib boost_serialization-mgw-d.lib boost_serialization-mgw-mt-1_33_1.dll boost_serialization-mgw-mt-1_33_1.lib boost_serialization-mgw-mt-d-1_33_1.dll boost_serialization-mgw-mt-d-1_33_1.lib boost_serialization-mgw-mt-d.lib boost_serialization-mgw-mt.lib boost_serialization-mgw.lib
boost_signals-mgw-1_33_1.dll boost_signals-mgw-1_33_1.lib boost_signals-mgw-d-1_33_1.dll boost_signals-mgw-d-1_33_1.lib boost_signals-mgw-d.lib boost_signals-mgw-mt-1_33_1.dll boost_signals-mgw-mt-1_33_1.lib boost_signals-mgw-mt-d-1_33_1.dll boost_signals-mgw-mt-d-1_33_1.lib boost_signals-mgw-mt-d.lib boost_signals-mgw-mt.lib boost_signals-mgw.lib
I believe that all the other libraries are building successfully.
Here are the first few errors that appear in my build log:
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(.text+0x7ac): In function `ZN5boost10filesystem6detail12dir_itr_initERNS_10shared_ptrINS1_11dir_itr_impEEERKNS0_4pathE':
c:/cygwin_home/dave/devl/thirdParty/Cygwin/boost/boost_1_33_1x/src/boost_1_33_1/libs/filesystem/build/../src/operations_posix_windows.cpp:308: undefined reference to `boost::filesystem::detail::system_error_code()' bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\operations_posix_windows.obj(.text+0x81d):c:/cygwin_home/dave/devl/thirdParty/Cygwin/boost/boost_1_33_1x/src/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)' bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\operations_posix_windows.obj(.text+0x8d7):c:/cygwin_home/dave/devl/thirdParty/Cygwin/boost/boost_1_33_1x/src/boost_1_33_1/libs/filesystem/build/../src/operations_posix_windows.cpp:308: undefined reference to `boost::filesystem::filesystem_error::~filesystem_error()' bin\boost\libs\filesystem\build\boost_filesystem.dll\mingw\debug\operations_posix_windows.obj(.text+0x8f3):c:/cygwin_home/dave/devl/thirdParty/Cygwin/boost/boost_1_33_1x/src/boost_1_33_1/libs/filesystem/build/../src/operations_posix_windows.cpp:308: undefined reference to `boost::filesystem::filesystem_error::~filesystem_error()'
So far my work around has been to use 1_33_0 which builds 100% cleanly.
Does anyone have any idea either what I might be doing wrong or what is going wrong otherwise.
Thanks.
- Dave