• inline functions not included in dll

    From tharasp@gmail.com@21:1/5 to All on Mon Apr 24 10:24:48 2017
    Hello all,


    I am using ACE 6.4.2 library in Windows 10 64 bit machine. I built ACE library by opening ACE_vc14.sln and building in MS Visual Studio 2015 community edition. The build was succesful and dll and lib files were created at /lib. But when I use ACE.dll in
    my application, I am getting a number of linker errors

    WorkerController.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) int __cdecl ACE_OS::strcmp(char const *,char const *)" (__imp_?strcmp@ACE_OS@@YAHPEBD0@Z) referenced in function "public: virtual class ACE_Module<class ACE_MT_
    SYNCH,class ACE_System_Time_Policy> * __cdecl ACE_Stream<class ACE_MT_SYNCH,class ACE_System_Time_Policy>::find(char const *)" (?find@?$ACE_Stream@VACE_MT_SYNCH@@VACE_System_Time_Policy@@@@UEAAPEAV?$ACE_Module@VACE_MT_SYNCH@@VACE_System_Time_Policy@@@@
    PEBD@Z)

    WorkerController.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) char * __cdecl ACE_OS::strdup(char const *)" (__imp_?strdup@ACE_OS@@YAPEADPEBD@Z) referenced in function "public: virtual int __cdecl ACE_Stream_Head<class ACE_MT_
    SYNCH,class ACE_System_Time_Policy>::info(char * *,unsigned __int64)const " (?info@?$ACE_Stream_Head@VACE_MT_SYNCH@@VACE_System_Time_Policy@@@@UEBAHPEAPEAD_K@Z)

    WorkerController.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) unsigned __int64 __cdecl ACE_OS::strlen(char const *)" (__imp_?strlen@ACE_OS@@YA_KPEBD@Z) referenced in function "public: virtual int __cdecl ACE_Stream_Head<class
    ACE_MT_SYNCH,class ACE_System_Time_Policy>::info(char * *,unsigned __int64)const " (?info@?$ACE_Stream_Head@VACE_MT_SYNCH@@VACE_System_Time_Policy@@@@UEBAHPEAPEAD_K@Z)

    WorkerController.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) class ACE_Time_Value __cdecl ACE_OS::gettimeofday(void)" (__imp_?gettimeofday@ACE_OS@@YA?AVACE_Time_Value@@XZ) referenced in function "public: virtual int __cdecl
    Mosair::WorkerController::svc(void)" (?svc@WorkerStreamController@Mosair@@UEAAHXZ)

    I observed that these are all inline functions defined in ACE. I also use DLL Export Viewer to list functions in ACE.dll and could not find above methods. How can I build ACE to include inline functions also using Visual Studio?

    Thanks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Johnny Willemsen@21:1/5 to tha...@gmail.com on Mon May 1 04:53:23 2017
    On Monday, April 24, 2017 at 7:24:49 PM UTC+2, tha...@gmail.com wrote:
    Hello all,


    I am using ACE 6.4.2 library in Windows 10 64 bit machine. I built ACE library by opening ACE_vc14.sln and building in MS Visual Studio 2015 community edition. The build was succesful and dll and lib files were created at /lib. But when I use ACE.dll
    in my application, I am getting a number of linker errors

    WorkerController.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) int __cdecl ACE_OS::strcmp(char const *,char const *)" (__imp_?strcmp@ACE_OS@@YAHPEBD0@Z) referenced in function "public: virtual class ACE_Module<class ACE_MT_
    SYNCH,class ACE_System_Time_Policy> * __cdecl ACE_Stream<class ACE_MT_SYNCH,class ACE_System_Time_Policy>::find(char const *)" (?find@?$ACE_Stream@VACE_MT_SYNCH@@VACE_System_Time_Policy@@@@UEAAPEAV?$ACE_Module@VACE_MT_SYNCH@@VACE_System_Time_Policy@@@@
    PEBD@Z)

    WorkerController.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) char * __cdecl ACE_OS::strdup(char const *)" (__imp_?strdup@ACE_OS@@YAPEADPEBD@Z) referenced in function "public: virtual int __cdecl ACE_Stream_Head<class ACE_
    MT_SYNCH,class ACE_System_Time_Policy>::info(char * *,unsigned __int64)const " (?info@?$ACE_Stream_Head@VACE_MT_SYNCH@@VACE_System_Time_Policy@@@@UEBAHPEAPEAD_K@Z)

    WorkerController.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) unsigned __int64 __cdecl ACE_OS::strlen(char const *)" (__imp_?strlen@ACE_OS@@YA_KPEBD@Z) referenced in function "public: virtual int __cdecl ACE_Stream_Head<
    class ACE_MT_SYNCH,class ACE_System_Time_Policy>::info(char * *,unsigned __int64)const " (?info@?$ACE_Stream_Head@VACE_MT_SYNCH@@VACE_System_Time_Policy@@@@UEBAHPEAPEAD_K@Z)

    WorkerController.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) class ACE_Time_Value __cdecl ACE_OS::gettimeofday(void)" (__imp_?gettimeofday@ACE_OS@@YA?AVACE_Time_Value@@XZ) referenced in function "public: virtual int __
    cdecl Mosair::WorkerController::svc(void)" (?svc@WorkerStreamController@Mosair@@UEAAHXZ)

    I observed that these are all inline functions defined in ACE. I also use DLL Export Viewer to list functions in ACE.dll and could not find above methods. How can I build ACE to include inline functions also using Visual Studio?

    Thanks.

    Hi,

    This can be done by adding the following line to the top of your ace/config.h file and recompile ACE.
    #define ACE_NO_INLINE

    Best regards,

    Johnny Willemsen
    Remedy IT
    http://www.remedy.nl

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)