Много ошибок произошло при построении ACE и TAO (CORBA) с использованием VS 2010

Я пытаюсь создать среду ACE и TAO, но получаю много ошибок.

Процедура, которую я сделал для установки ACE и TAO:

  1. Разархивируйте файл (ACE + TAO + CIAO-6.1.2.zip) в папку (C: \ ACE_wrappers)
  2. Создайте файл config.h в C: \ ACE_wrappers \ ace
  3. Откройте файл config.h и введите строки:

#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»

  1. Сохранил его и закрыл
  2. Откройте Панель управления -> Система -> Расширенные настройки системы -> Переменные среды
  3. Создайте новую системную переменную: ACE_ROOT, значение: C: \ ACE_wrappers
  4. Создайте новую системную переменную: TAO_ROOT, значение: C: \ ACE_wrappers \ TAO
  5. В системную переменную 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;

  6. Начать Visual Stiduo 2010

  7. Откройте решение TAO_ACE_vc10.sln в C: \ ACE_wrappers \ TAO
  8. Выберите Release в конфигурации решения (в строке меню)
  9. Выберите весь проект и щелкните правой кнопкой мыши, затем выберите Свойства
  10. Задайте Свойства конфигурации -> Общие -> Использование MFC для использования MFC в общей DLL
  11. В Свойства конфигурации -> Каталоги VC ++ -> Каталоги исполняемых файлов добавьте C: \ ACE_wrappers \ bin;
  12. В Свойствах конфигурации -> Каталоги VC ++ -> Включить каталоги добавьте C: \ ACE_wrappers
    C: \ ACE_wrappers \ TAO
    C: \ ACE_wrappers \ TAO \ дао
    C: \ ACE_wrappers \ TAO \ orbsvcs
    C: \ ACE_wrappers \ TAO \ orbsvcs \ orbsvcs
  13. В свойствах конфигурации -> Каталоги VC ++ -> Добавить каталоги библиотеки
    C: \ ACE_wrappers \ ася
    C: \ ACE_wrappers \ TAO \ дао
    C: \ ACE_wrappers \ TAO \ orbsvcs \ orbsvcs

  14. Выберите каждый проект и проверьте, является ли его Свойства конфигурации -> Общие -> Тип конфигурации динамической библиотекой (.dll), если это так, то измените на Статическую библиотеку (.lib)
    Но если это Приложение (.exe) или Утилита, то я не изменяю. Как проект Scheduling_Service, в котором произошла ошибка во время сборки.

  15. Построить -> Построить решение

Спустя долгое время большинство проектов строятся успешно. 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)

Кто-нибудь знает эту проблему? Большое спасибо.

1

Решение

Вы не должны использовать #define ACE_AS_STATIC_LIBS 1 если вы не используете проект Visual Studio, созданный для статического использования. В тот момент, когда вы хотите сделать статическую сборку, вам нужно восстановить проекты Visual Studio с помощью MPC.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]