build palo server from source

    build palo server from source

    I'm trying to build palo from source on windows ( windows 7 64 bit ) with target 64 bit binary.

    I downloaded the source from svn e installed the 64 bit version of library boost e openssl .

    I only have problems during the link with the boost libraries .

    below the output of the build procedure .

    Thanks for any help


    ------ Build started: Project: Palo Server Library, Configuration: Debug x64 ------

    Searching libraries
    Searching E:\Documents\programs\OpenSSL-Win64\lib\VC\static\ssleay32MD.lib:
    Searching E:\Documents\programs\OpenSSL-Win64\lib\VC\static\libeay32MD.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\ws2_32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\kernel32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\user32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\gdi32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\winspool.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\comdlg32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\advapi32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\shell32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\ole32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\oleaut32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\uuid.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\odbc32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\odbccp32.lib:
    Searching e:\Documents\programs\MicrosoftVisualStudio10.0\VC\lib\amd64\MSVCRTD.lib:
    Searching e:\Documents\programs\MicrosoftVisualStudio10.0\VC\lib\amd64\OLDNAMES.lib:
    Searching e:\Documents\programs\MicrosoftVisualStudio10.0\VC\lib\amd64\msvcprtd.lib:
    Searching E:\Documents\programs\boost\boost_1_51\lib\libboost_thread-vc100-mt-gd-1_51.lib:
    Searching E:\Documents\programs\boost\boost_1_51\lib\libboost_date_time-vc100-mt-gd-1_51.lib:
    Searching E:\Documents\programs\boost\boost_1_51\lib\libboost_system-vc100-mt-gd-1_51.lib:
    Searching E:\Documents\programs\boost\boost_1_51\lib\libboost_chrono-vc100-mt-gd-1_51.lib:
    Searching E:\Documents\programs\OpenSSL-Win64\lib\VC\static\ssleay32MD.lib:
    Searching E:\Documents\programs\OpenSSL-Win64\lib\VC\static\libeay32MD.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\ws2_32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\kernel32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\user32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\gdi32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\winspool.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\comdlg32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\advapi32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\shell32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\ole32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\oleaut32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\uuid.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\odbc32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\odbccp32.lib:
    Searching e:\Documents\programs\MicrosoftVisualStudio10.0\VC\lib\amd64\MSVCRTD.lib:
    Searching e:\Documents\programs\MicrosoftVisualStudio10.0\VC\lib\amd64\OLDNAMES.lib:

    Finished searching libraries
    Creating library E:\Documents\svn\palo\molap\server\3.X\Source\MS.NET-2010\amd64\Debug\paloserver.lib and object E:\Documents\svn\palo\molap\server\3.X\Source\MS.NET-2010\amd64\Debug\paloserver.exp

    Searching libraries
    Searching E:\Documents\programs\OpenSSL-Win64\lib\VC\static\ssleay32MD.lib:
    Searching E:\Documents\programs\OpenSSL-Win64\lib\VC\static\libeay32MD.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\ws2_32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\kernel32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\user32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\gdi32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\winspool.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\comdlg32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\advapi32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\shell32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\ole32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\oleaut32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\uuid.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\odbc32.lib:
    Searching C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\x64\odbccp32.lib:
    Searching e:\Documents\programs\MicrosoftVisualStudio10.0\VC\lib\amd64\MSVCRTD.lib:
    Searching e:\Documents\programs\MicrosoftVisualStudio10.0\VC\lib\amd64\OLDNAMES.lib:
    Searching e:\Documents\programs\MicrosoftVisualStudio10.0\VC\lib\amd64\msvcprtd.lib:
    Searching E:\Documents\programs\boost\boost_1_51\lib\libboost_thread-vc100-mt-gd-1_51.lib:
    Searching E:\Documents\programs\boost\boost_1_51\lib\libboost_date_time-vc100-mt-gd-1_51.lib:
    Searching E:\Documents\programs\boost\boost_1_51\lib\libboost_system-vc100-mt-gd-1_51.lib:
    Searching E:\Documents\programs\boost\boost_1_51\lib\libboost_chrono-vc100-mt-gd-1_51.lib:

    Finished searching libraries
    palo.obj : error LNK2019: unresolved external symbol "public: void __cdecl boost::thread::join(void)" (?join@thread@boost@@QEAAXXZ) referenced in function "public: void __cdecl palo::Win32StatusUpdater::CleanupTimer(void)" (?CleanupTimer@Win32StatusUpdater@palo@@QEAAXXZ)
    palo.obj : error LNK2019: unresolved external symbol "public: void __cdecl boost::thread::detach(void)" (?detach@thread@boost@@QEAAXXZ) referenced in function "public: __cdecl boost::thread::~thread(void)" (??1thread@boost@@QEAA@XZ)
    palo.obj : error LNK2019: unresolved external symbol "private: void __cdecl boost::thread::start_thread(void)" (?start_thread@thread@boost@@AEAAXXZ) referenced in function "public: __cdecl boost::thread::thread<class palo::AutosaveTimer::SaveWorker>(class palo::AutosaveTimer::SaveWorker &&,struct boost::thread::dummy *)" (??$?0VSaveWorker@AutosaveTimer@palo@@@thread@boost@@QEAA@$$QEAVSaveWorker@AutosaveTimer@palo@@PEAUdummy@01@@Z)
    palo.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "public: __cdecl boost::thread_exception::thread_exception(int,char const *)" (??0thread_exception@boost@@QEAA@HPEBD@Z)
    palo.obj : error LNK2019: unresolved external symbol "bool __cdecl boost::this_thread::interruptible_wait(void *,struct boost::detail::timeout)" (?interruptible_wait@this_thread@boost@@YA_NPEAXUtimeout@detail@2@@Z) referenced in function "void __cdecl boost::this_thread::interruptible_wait(unsigned __int64)" (?interruptible_wait@this_thread@boost@@YAX_K@Z)
    palo.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'posix_category''(void)" (??__Eposix_category@system@boost@@YAXXZ)
    E:\Documents\svn\palo\molap\server\3.X\Source\MS.NET-2010\amd64\Debug\paloserver.dll : fatal error LNK1120: 6 unresolved externals
    ------ Build started: Project: Palo HTTPS Library, Configuration: Debug x64 ------
    Creating library E:\Documents\svn\palo\molap\server\3.X\Source\MS.NET-2010\amd64\Debug\palohttps.lib and object E:\Documents\svn\palo\molap\server\3.X\Source\MS.NET-2010\amd64\Debug\palohttps.exp
    palohttps.vcxproj -> E:\Documents\svn\palo\molap\server\3.X\Source\MS.NET-2010\amd64\Debug\palohttps.dll
    palohttps.vcxproj -> E:\Documents\svn\palo\molap\server\3.X\Source\MS.NET-2010\amd64\Debug\palohttps.dll
    ------ Build started: Project: Palo Shared Executable, Configuration: Debug x64 ------
    palo.vcxproj -> E:\Documents\svn\palo\molap\server\3.X\Source\MS.NET-2010\amd64\Debug\palo.exe
    ========== Build: 2 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    Hi,
    maybe project files for 64bit version are not attached, but the software available in sourceforge is compilable for 64bits. You just need to add right libraries to it.
    BTW: Microsoft Visual Studio Express version is also not ready to build 64bit apps. You have to either pay for full version or do some manual configuration. :)

    Jiri
    what version of MSVC are you using? I tried on Visual Studio Express 10. Only I had to do was set right lib path in
    Propertymanager/Microsoft.Cpp.x64.user/Library Directories
    my location is ...;C:\projects\lib\openssl\lib\Windows\x86_64;C:\projects\lib\boost\lib\Windows\x86_64
    then compilation from MSVC IDE works fine

    how the message "Searching libraries" from your log is generated? I have not seen this message in Build output to detailed verbosity set for MSBuild

    using latest source code from palo.svn.sourceforge.net/svnroot/palo/molap/server
    i.m using Micorsoft Visual Studio 2010 Professional .
    to get the output for library search set the option /VERBOSE:Lib on the command line of the linker .
    for build the source i have download the library openssl ( 1.0.1c ) and boost ( version 1.5.1 ) for 64 bit platform and
    set the include path to E:\Documents\programs\boost\boost_1_51_64
    and the library directories to E:\Documents\programs\boost\boost_1_51_64\lib ,E:\Documents\programs\OpenSSL-Win64\lib\VC\static .
    What version of boost are you using ?
    from the log it seems to be problem of boost:
    ... unresolved external symbol "public: void __cdecl boost::thread::join...
    I think that VS version mismatch could be a problem. I recommend you to recompile everything with 2010.
    Openssl dlls have version 1.0.1.3 (1.0.1c)
    01/10/2013 01:12 PM 782,102 libeay32.lib
    01/10/2013 01:12 PM 782,102 libeay32d.lib
    01/10/2013 01:14 PM 66,342 ssleay32.lib
    01/10/2013 01:14 PM 66,342 ssleay32d.lib
    we have a repository of binaries, so I can't tell you where it came from
    Yes, I have built the server successfully and it's up and running. The process was not too straightforward but within couple of hours it was done. Unfortunately I did all this on the test machine which got accidentally wiped. Therefore I can not help you with any specifics at the moment.

    Trick was to add icu, boost &c to cmake (if you are not too familiar, you can use the GUI) sot that it is able to generate the solution. There you may need to make further tweaks.

    In order to add dependencies to cmake it's best to follow POSIX-style directory structure. Cmake expects things to be quite well structured unless you want to do all this manually. What I did was putting all dependencies as follows:

    /boost
    /boost/include
    /boost/lib
    /icu
    /icu/include
    /icu/lib
    ..

    Hope this helps,
    Madis