Hello all,

I have been struggling with this problem for 2 days and I cannot really find a solution.

I have a c++ application that I want to cross compile under Fedora 15  to use it with Windows.

The packages that my app depends on are already pre-compiled in :  /usr/i686-mingw32...../

I am using CMake. It compiles okay and I generate the .exe file without problems.

When I try to run it under Windows it complains :

       "The program cant start because boost_filesystem-gcc45-mt-1_46_1.dll ins missing......."

I have boost 1.47 installed in the windows machine but the libraries have a different suffix (...vc-xx-mt...)

When I cross compile I do it statically ( I am attaching my toolchain-mingw32 file )

My question is, why is the exe program looking for the boost dll with exactly the same name as it has in the linux
machine where the cross  compiled exe has been built from??
In my fedora mingw32 lib folder the boost libraries look like this : libboost_filesystem-gcc45-mt-1_46_1.dll·a

Is there any way to tell cmake to disregard those suffixes while running in Windows?

Is there any way to tell cmake to copy the boost libraries needed for my application into a local folder that will be included
inside the the windows installer??


Also while cross compiling I had gotten this error :

In file included 
from
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/functional/hash/detail/hash_float.hpp:17,
from
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/functional/hash/hash.hpp:15,
from
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/functional/hash.hpp:6,
from
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/unordered/unordered_set.hpp:17,
from
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/unordered_set.hpp:16,
from
/mnt/VirtualBoxShare/percolator/src/ProteinProbEstimatorHelper.h:33,
from
/mnt/VirtualBoxShare/percolator/src/ProteinProbEstimator.cpp:28:

/usr/i686-pc-mingw32/sys-root/mingw/include/boost/cstdint.hpp:105: error: expected unqualified-id before 'unsigned'
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/cstdint.hpp:105: error: expected ';' before 'unsigned'
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/cstdint.hpp:105: error: declaration does not declare anything
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/cstdint.hpp:114: error: expected unqualified-id before 'unsigned'
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/cstdint.hpp:114: error: expected ';' before 'unsigned'
/usr/i686-pc-mingw32/sys-root/mingw/include/boost/cstdint.hpp:114: error: declaration does not declare anything

It seemed boost defines a typedf in cstdint that is already defined in somewhere else, I would guess it is because the windows flag is activated
even though it is compiling under linux. I fixed it checking it the definition has been made already but this is not a proper solution.
Is it maybe that definition in my code or another cross compiled library?

Thank you so much

Jose