Не могу сгенерировать файл lib для разделяемой dll для TAO IDL

Один файл IDL exception.idl

module project{
    exception JobCreateException{
    string errorMessage;
   };

}

Части MPC файла:

project(idl_exception): taoidldefaults, anytypecode {
   idlflags += -GI -Wb,stub_export_macro=EXCEPTION_STUB_Export -Wb,stub_export_include=exception_stub_export.h -Wb,skel_export_macro=EXCEPTION_SKEL_Export 

-WB,skel_export_include=exception_skel_export.h

  IDL_Files {
    exception.idl
  }
 custom_only = 1
}

  project(idl_exception_skel): naming, iortable, utils, avoids_corba_e_micro, anytypecode {
     sharedname = idl_exception_skel
      after +=  idl_exception
      Source_Files {
         exceptionS.cpp
      }
     Header_Files{
    exceptionS.h
        exceptionC.h
        exception_skel_export.h 
    }
   dynamicflags += EXCEPTION_SKEL_BUILD_DLL EXCEPTION_STUB_BUILD_DLL
 }

Согласно файлу mpc, я хочу сгенерировать скелетные DLL-файлы с помощью VC8, и файл.lib будет связан с реализацией сервера.

Однако после компиляции файл idl_exception_skel.dll был успешно создан, но нет.lib-файла.

Затем я добавляю новую структуру, такую ​​как:

struct myobject{
   string name;
};

внутри idl-файла и восстановить все, файл lib появляется.

Есть ли какое-либо объяснение того, какие типы файлов IDL не могут быть для скелета? @ Джонни Виллемсен

1 ответ

Библиотека skel должна связываться с библиотекой-заглушкой, связанной с файлом IDL. Для проекта-заглушки добавьте EXCEPTION_STUB_BUILD_DLL в динамические флаги, для проекта skel используйте только EXCEPTION_SKEL_BUILD_DLL. Тот факт, что в библиотеке отсутствует, указывает на неразрешенные символы, которые вызваны тем, что вы не добавляете idl_exception_stub в библиотеки idl_exception_skel.

Другие вопросы по тегам