Re: [Boost-users] boost builds dll's on mingw, can't use
Imran, I've using Boost 1.33.0 with the latest MinGW on Windows XP, and it works fine. Could you be a bit more specific as to why MinGW "can't use" the Boost libraries? Do you mean that references are left unresolved? Here is an excerpt from the part of my my Makefile that deals with libraries: BOOSTLIBS = -L${boost_libs} \ -llibboost_date_time${boost_suffix} \ -llibboost_filesystem${boost_suffix} \ -llibboost_regex${boost_suffix} \ -llibboost_serialization${boost_suffix} \ -llibboost_thread${boost_suffix} \ -llibboost_program_options${boost_suffix} where ${boost_libs} expands into the pathname of the directory the Boost libraries are in and ${boost_suffix} expands into "-mgw-mt-sd-1_33", which says the libraries are compiled for MinGW, multi-threaded, static, debug, and Boost version 1.33. I put ${BOOSTLIBS} as the LAST thing on the call to g++ to link my .exe file. Notice that the positioning is important. The linker reads the files listed on the command line from left to right. When it comes to a library file, it resolves whatever outstanding references to that library it has AT THAT POINT in the scan. If it sees another reference to that library later in the left to right scan after seeing the library, that later reference goes unresolved. The linker needs to see ALL references to library functions BEFORE it sees the libraries themselves. So, put the libraries last. The Boost library build process creates the libraries both with the Boost version suffix ("1_33" in my case) and without. You can use either one as they are identical files. The idea is that if you use the library file versions WITHOUT the version number suffix, then you won't have to change your Makefile when a new version comes out. On the other hand, if you want to explicitly tie your program to one and only one version of the Boost libraries, you can use the filename WITH the version numbers. Merrill
Thanks Merrill,
i'm actually using scons, not make... and I didn't code that part, so
I'll have to look at it. Is the problem not the extensions (.dll/.lib vs
.so/.a)? Why didn't boost name them properly when I specified mingw?
Thanks,
Imran
On 12/15/05, Merrill Cornish
Imran,
I've using Boost 1.33.0 with the latest MinGW on Windows XP, and it works fine.
Could you be a bit more specific as to why MinGW "can't use" the Boost libraries? Do you mean that references are left unresolved?
Here is an excerpt from the part of my my Makefile that deals with libraries:
BOOSTLIBS = -L${boost_libs} \ -llibboost_date_time${boost_suffix} \ -llibboost_filesystem${boost_suffix} \ -llibboost_regex${boost_suffix} \ -llibboost_serialization${boost_suffix} \ -llibboost_thread${boost_suffix} \ -llibboost_program_options${boost_suffix}
where ${boost_libs} expands into the pathname of the directory the Boost libraries are in and ${boost_suffix} expands into "-mgw-mt-sd-1_33", which says the libraries are compiled for MinGW, multi-threaded, static, debug, and Boost version 1.33.
I put ${BOOSTLIBS} as the LAST thing on the call to g++ to link my .exe file. Notice that the positioning is important.
The linker reads the files listed on the command line from left to right. When it comes to a library file, it resolves whatever outstanding references to that library it has AT THAT POINT in the scan. If it sees another reference to that library later in the left to right scan after seeing the library, that later reference goes unresolved.
The linker needs to see ALL references to library functions BEFORE it sees the libraries themselves. So, put the libraries last.
The Boost library build process creates the libraries both with the Boost version suffix ("1_33" in my case) and without. You can use either one as they are identical files.
The idea is that if you use the library file versions WITHOUT the version number suffix, then you won't have to change your Makefile when a new version comes out. On the other hand, if you want to explicitly tie your program to one and only one version of the Boost libraries, you can use the filename WITH the version numbers.
Merrill _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Imran Akbar
-
Merrill Cornish