Я пытаюсь создать среду ACE и TAO, но получаю много ошибок.
Процедура, которую я сделал для установки ACE и TAO:
#definenter code heree ACE_HAS_WINNT4 1
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_MFC 1
#define THR_USE_AFX 1
#define ACE_USES_STATIC_MFC 1
#define ACE_AS_STATIC_LIBS 1
#define ACE_NO_INLINE
#include «ace / config-win32.h»
В системную переменную PATH добавьте значение: C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ bin; C: \ ACE_wrappers \ bin; C: \ ACE_wrappers \ lib; C: \ ACE_wrappers \ TAO \ bin;
поэтому значение:
% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; c: \ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \; c: \ Program Files \ Microsoft SQL Server \ 100 \ DTS \ Binn \;% USERPROFILE% .dnx \ bin; C: \ Program Files \ Microsoft DNX \ Dnvm \; C: \ Program Files \ Windows Kits \ 8.1 \ Windows Performance Toolkit \ ; C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ bin; C: \ ACE_wrappers \ bin; C: \ ACE_wrappers \ lib; C: \ ACE_wrappers \ TAO \ bin;
Начать Visual Stiduo 2010
В свойствах конфигурации -> Каталоги VC ++ -> Добавить каталоги библиотеки
C: \ ACE_wrappers \ ася
C: \ ACE_wrappers \ TAO \ дао
C: \ ACE_wrappers \ TAO \ orbsvcs \ orbsvcs
Выберите каждый проект и проверьте, является ли его Свойства конфигурации -> Общие -> Тип конфигурации динамической библиотекой (.dll), если это так, то измените на Статическую библиотеку (.lib)
Но если это Приложение (.exe) или Утилита, то я не изменяю. Как проект Scheduling_Service, в котором произошла ошибка во время сборки.
Спустя долгое время большинство проектов строятся успешно. Scheduling_Service, Time_Service_Clerk, NT_Notify_Service, Naming_Service (и, возможно, есть несколько других проектов) имеют ошибки (ошибка LNK2001: неразрешенный внешний символ «__declspec (dllimport) public: ……).
1> Scheduling_Service.obj: ошибка LNK2019: неразрешенный внешний символ «__declspec (dllimport) public: __thiscall TAO_ORB_Manager :: ~ TAO_ORB_Manager (void)» (__imp _ ?? 1TAO_ORB_Manager @@ QAE @ 0_0_un_fid_s_f_0) QAE @ XZ $ 0
1> Scheduling_Service.obj: ошибка LNK2019: неразрешенный внешний символ «__declspec (dllimport) public: __thiscall TAO_ORB_Manager :: TAO_ORB_Manager (класс CORBA :: ORB *, класс PortableServer :: POA *, класс PortableServer :: POAManimp *? (» ? 0TAO_ORB_Manager @@ QAE @ PAVORB @ CORBA @@ PAVPOA @ PortableServer @@ PAVPOAManager @ 4 @@ Z) ссылается на функцию «public: __thiscall TAO_Scheduling_Service :: TAO_Scheduling_Service (void)» (@@_A) @ched_Slayer @
1> Scheduling_Service.obj: ошибка LNK2019: неразрешенный внешний символ «__declspec (dllimport) public: virtual __thiscall CosNaming :: Name :: ~ Name (void)» (__imp _ ?? 1Name @ CosNaming @@ UAE @ XZ), на который имеется ссылка в функции » public: int __thiscall TAO_Scheduling_Service :: init (int, char * * const) «(? init @ TAO_Scheduling_Service @@ QAEHHQAPAD @ Z)
1> TAO_RTSchedd.lib (Scheduler_Factory.obj): ошибка LNK2001: неразрешенный внешний символ «__declspec (dllimport) public: virtual __thiscall CosNaming :: Name :: ~ Name (void)» (__imp _ ?? 1Name @ CosNaming @@ UAE @ XZ )
1> Scheduling_Service.obj: ошибка LNK2019: неразрешенный внешний символ «__declspec (dllimport) public: struct CosNaming :: NameComponent & __thiscall TAO :: unbounded_value_sequence :: operator [] (unsigned int) «(__imp _ ?? A? $ unbounded_value_sequence @ UNameComponent @ CosNaming @@@ TAO @@ QAEAAUNameComponent @ CosNaming @@ I @ Z), на который ссылается функция publicall: int __th TAO_Scheduling_Service :: init (int, char * * const) «(? Init @ TAO_Scheduling_Service @@ QAEHHQAPAD @ Z)
1> TAO_RTSchedd.lib (Scheduler_Factory.obj): ошибка LNK2001: неразрешенный внешний символ «__declspec (dllimport) public: struct CosNaming :: NameComponent & __thiscall TAO :: unbounded_value_sequence :: operator [] (unsigned int) «(__imp _ ?? A? $ unbounded_value_sequence @ UNameComponent @ CosNaming @@@ TAO @@ QAEAAUNameComponent @ CosNaming @@ I @ Z)
Кто-нибудь знает эту проблему? Большое спасибо.
Вы не должны использовать #define ACE_AS_STATIC_LIBS 1
если вы не используете проект Visual Studio, созданный для статического использования. В тот момент, когда вы хотите сделать статическую сборку, вам нужно восстановить проекты Visual Studio с помощью MPC.
Других решений пока нет …