使用VS 2010构建ACE和TAO(CORBA)时发生了许多错误

时间:2018-03-26 07:01:09

标签: c++ visual-studio-2010 corba ace tao

我正在尝试构建ACE和TAO环境,但却遇到了很多错误。

我安装ACE和TAO的过程是:

  1. 将文件(ACE + TAO + CIAO-6.1.2.zip)解压缩到文件夹(C:\ ACE_wrappers)
  2. 在C:\ ACE_wrappers \ ace
  3. 中创建config.h文件
  4. 打开config.h文件并输入以下行:
  5. #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 \仓; 所以价值是: %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. 在C:\ ACE_wrappers \ TAO中打开TAO_ACE_vc10.sln解决方案
    8. 在解决方案配置中选择发布(在菜单栏上)
    9. 选择所有项目并右键单击,然后选择“属性”
    10. 设置配置属性 - >一般 - >使用MFC在共享DLL中使用MFC
    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 \ ACE C:\ ACE_wrappers \ TAO \涛 C:\ ACE_wrappers \ TAO \ orbsvcs \ orbsvcs

    14. 选择每个项目并检查其配置属性 - >一般 - >配置类型是动态库(.dll),如果是,则更改为静态库(.lib) 但如果是Application(.exe)或Utility,那我就不会改变。就像Scheduling_Service项目在构建期间出错一样。

    15. 构建 - >构建解决方案
    16. 经过很长一段时间,大多数项目都成功建成。 Scheduling_Service,Time_Service_Clerk,NT_Notify_Service,Naming_Service(可能还有其他一些项目)有错误(错误LNK2001:未解析的外部符号" __ declspec(dllimport)public:......)。

      1> Scheduling_Service.obj:错误LNK2019:未解析的外部符号" __ declspec(dllimport)public:__ thishisall TAO_ORB_Manager :: ~TAO_ORB_Manager(void)" (__imp _ ?? 1TAO_ORB_Manager @@ QAE @ XZ)函数__unwindfunclet $ ?? 0TAO_Scheduling_Service @@ QAE @XZ $ 0 1> Scheduling_Service.obj:错误LNK2019:未解析的外部符号" __ declspec(dllimport)public:__ thishisall TAO_ORB_Manager :: TAO_ORB_Manager(类CORBA :: ORB *,类PortableServer :: POA *,类PortableServer :: POAManager *)& #34; (__imp _ ?? 0TAO_ORB_Manager @@ QAE @ PAVORB @ CORBA @@ PAVPOA @ PortableServer @@ PAVPOAManager @ 4 @@ Z)在函数" public中引用:__thiscall TAO_Scheduling_Service :: TAO_Scheduling_Service(void)" (?? 0TAO_Scheduling_Service @@ @ QAE XZ) 1> Scheduling_Service.obj:错误LNK2019:未解析的外部符号" __ declspec(dllimport)public:virtual __thiscall CosNaming :: Name ::〜Name(void)" (__imp _ ?? 1Name @ CosNaming @@ UAE @ XZ)在函数&#34中引用; 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)在函数&#34中引用; 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:struct CosNaming :: NameComponent& __thiscall TAO :: unbounded_value_sequence :: operator [](unsigned int)" (__imp _ ?? A'$ unbounded_value_sequence @ UNameComponent @的CosNaming @@@ TAO @@ @ QAEAAUNameComponent @@的CosNaming I @ Z)

      有谁知道这个问题?非常感谢你。

1 个答案:

答案 0 :(得分:1)

除非您使用为静态用法生成的Visual Studio项目,否则不应使用#define ACE_AS_STATIC_LIBS 1。在您想要进行静态构建的那一刻,您必须使用MPC重新生成Visual Studio项目