Can't compile QxORM [Linkerror]

Forum for posting problems using QxOrm library

Can't compile QxORM [Linkerror]

Postby mth » Tue Oct 30, 2012 10:44 am

At compiletime, I get a lot of linker errors : LINK2001 unresolved external symbol... like:
1>QxExportDllBoostArchive.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class boost::archive::detail::basic_serializer const * __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::find(class boost::serialization::extended_type_info const &)" (__imp_?find@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAPBVbasic_serializer@234@ABVextended_type_info@serialization@4@@Z)" in Funktion ""public: static class boost::archive::detail::basic_pointer_iserializer const * __cdecl boost::archive::detail::load_pointer_type<class boost::archive::binary_iarchive>::find(class boost::serialization::extended_type_info const &)" (?find@?$load_pointer_type@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAPBVbasic_pointer_iserializer@234@ABVextended_type_info@serialization@4@@Z)".

1>IxService.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class boost::archive::detail::basic_serializer const * __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::find(class boost::serialization::extended_type_info const &)" (__imp_?find@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAPBVbasic_serializer@234@ABVextended_type_info@serialization@4@@Z)".

1>QxTransaction.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class boost::archive::detail::basic_serializer const * __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::find(class boost::serialization::extended_type_info const &)" (__imp_?find@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAPBVbasic_serializer@234@ABVextended_type_info@serialization@4@@Z)".

1>QxExportDllBoostArchive.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class boost::archive::detail::basic_serializer const * __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_oarchive>::find(class boost::serialization::extended_type_info const &)" (__imp_?find@?$archive_serializer_map@Vbinary_oarchive@archive@boost@@@detail@archive@boost@@SAPBVbasic_serializer@234@ABVextended_type_info@serialization@4@@Z)" in Funktion ""public: static class boost::archive::detail::basic_pointer_iserializer const * __cdecl boost::archive::detail::load_pointer_type<class boost::archive::binary_oarchive>::find(class boost::serialization::extended_type_info const &)" (?find@?$load_pointer_type@Vbinary_oarchive@archive@boost@@@detail@archive@boost@@SAPBVbasic_pointer_iserializer@234@ABVextended_type_info@serialization@4@@Z)".

1>IxService.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class boost::archive::detail::basic_serializer const * __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_oarchive>::find(class boost::serialization::extended_type_info const &)" (__imp_?find@?$archive_serializer_map@Vbinary_oarchive@archive@boost@@@detail@archive@boost@@SAPBVbasic_serializer@234@ABVextended_type_info@serialization@4@@Z)".

1>QxTransaction.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static class boost::archive::detail::basic_serializer const * __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_oarchive>::find(class boost::serialization::extended_type_info const &)" (__imp_?find@?$archive_serializer_map@Vbinary_oarchive@archive@boost@@@detail@archive@boost@@SAPBVbasic_serializer@234@ABVextended_type_info@serialization@4@@Z)".

1>IxParameter.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".
1>IxService.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".

1>QxTransaction.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".

1>QxSerialize_QImage.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)" in Funktion ""protected: __thiscall boost::archive::detail::pointer_iserializer<class boost::archive::binary_iarchive,class QImage>::~pointer_iserializer<class boost::archive::binary_iarchive,class QImage>(void)" (??1?$pointer_iserializer@Vbinary_iarchive@archive@boost@@VQImage@@@detail@archive@boost@@IAE@XZ)".

1>QxSerialize_QObject.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".
1>QxSerialize_QPicture.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".

1>QxSerialize_QPixmap.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_iarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_iarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".

1>IxParameter.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_oarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_oarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".

1>IxService.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_oarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_oarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".

1>QxTransaction.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_oarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_oarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)".

1>QxSerialize_QImage.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static void __cdecl boost::archive::detail::archive_serializer_map<class boost::archive::binary_oarchive>::erase(class boost::archive::detail::basic_serializer const *)" (__imp_?erase@?$archive_serializer_map@Vbinary_oarchive@archive@boost@@@detail@archive@boost@@SAXPBVbasic_serializer@234@@Z)" in Funktion ""public: __thiscall boost::archive::detail::pointer_oserializer<class boost::archive::binary_oarchive,class QImage>::~pointer_oserializer<class boost::archive::binary_oarchive,class QImage>(void)" (??1?$pointer_oserializer@Vbinary_oarchive@archive@boost@@VQImage@@@detail@archive@boost@@QAE@XZ)".

etc......

I build with Qt4.73.
Boost 1.47.0 (Boostversion: 1.42.0&1.51= same behavior )
VisualStudio 2008 and Qt-Creator 2.4.0 (same behavior )

*.obj-files are all in release/debug directory
boost files are in Boost/archive/directory

I only edited:
Code: Select all
QX_BOOST_INCLUDE_PATH = $$quote(<path>/boost/boost_1_47_0)
QX_BOOST_LIB_PATH = $$quote(<path>/boost/lib)
QX_BOOST_LIB_SERIALIZATION_DEBUG = "libboost_serialization-vc90-mt-gd-1_47"
QX_BOOST_LIB_SERIALIZATION_RELEASE = "libboost_serialization-vc90-mt-1_47"


Maybe, i forgot something ?
mth
 
Posts: 3
Joined: Tue Oct 30, 2012 9:40 am

Re: Can't compile QxORM [Linkerror]

Postby qxorm » Tue Oct 30, 2012 8:36 pm

Hi,

Here are some basics steps to follow to install correctly your dev environment.
Just verify all those steps for your case :
1- Download and install Qt 4.8.X for MSVC2010 (or other) ;
2- Add Qt 'bin' directory to the PATH of Windows ;
3- Download my boost 1.49 package and unzip it : http://www.qxorm.com/lib/boost_1_49.zip ;
4- Add 'lib_shared' directory from my boost package to the PATH of Windows ;
5- Download QxOrm package and unzip it ;
6- Open 'QxOrm.pri' file and modify boost parameters (QX_BOOST_INCLUDE_PATH, QX_BOOST_LIB_PATH, etc.) ;
7- Open './test/qxBlog/qxBlog.sln' for example with MSVC2010, then try to build it and execute it ;
8- Test all examples from './test/' directory of QxOrm package.
qxorm
Site Admin
 
Posts: 481
Joined: Mon Apr 12, 2010 7:45 am

Re: Can't compile QxORM [Linkerror]

Postby mth » Wed Oct 31, 2012 10:55 am

ok, with your boost package ist works.

I see there are differences at librarys. Is it possible to build QxOrm without dynmic linked Boost lirbary ?
All our other apllications worked with static linked Boost librarys, and i want prevent mixing.

Yust enable the boost autolink feature is insufficient.
mth
 
Posts: 3
Joined: Tue Oct 30, 2012 9:40 am

Re: Can't compile QxORM [Linkerror]

Postby qxorm » Wed Oct 31, 2012 8:51 pm

ok, with your boost package ist works.

Cool ;)

Is it possible to build QxOrm without dynmic linked Boost lirbary ?

There is another topic about static binaries here : http://www.qxorm.com/forum/phpbb/viewto ... aee2f3b3e3
It should work (but not really tested), but I recommend to use dynamic libraries (for Qt, boost and QxOrm)...
qxorm
Site Admin
 
Posts: 481
Joined: Mon Apr 12, 2010 7:45 am


Return to QxOrm - Help

Who is online

Users browsing this forum: No registered users and 8 guests

cron