OmniORB ошибка компиляции Windows 7 64 бит

Кто-нибудь сталкивался с ошибкой ниже при компиляции omniORB_4.1.6 64-bit для windows? "Ошибка RegQueryValueEx - ошибка 109"

Я следовал процедуре в readme.win32, и я получаю ошибки компоновки в omniDyamic, наборах кодов и т. Д. Поэтому кто-то предложил пересобрать omniorb_root/src/tools/win32 и скопировать его в bin/x86_win32/. Это то, что я сделал, и когда я перекомпилирую весь omniORB, ошибка выглядит так:

../../../../bin/x86_win32/omkdepend -D__cplusplus -D_MSC_VER -DIDLMODULE_VERSION
="0x2630" -DMSDOS -DOMNIIDL_EXECUTABLE -Ic:/python27/include -Ic:/python27/PC -I
c:/python27/include/python2.7 -DPYTHON_INCLUDE=<Python.h> -I. -I. -I../../../../
include -D__WIN32__ -D_WIN32_WINNT=0x0501 -D__x86__ -D__NT__ -D__OSVERSION__=4 -
D_CRT_SECURE_NO_DEPRECATE=1 idlc.cc idlpython.cc idlfixed.cc idlconfig.cc idldum
p.cc idlvalidate.cc idlast.cc idlexpr.cc idlscope.cc idlrepoId.cc idltype.cc idl
util.cc idlerr.cc lex.yy.cc y.tab.cc
RegQueryValueEx failed - error 109
-----------------------------------------------------------------------------------------------
make[4]: Entering directory `/cygdrive/c/Software/COTS/omniORB/omniORB_4.1.6/src
/tool/omniidl/cxx/cccp'
../../../../../bin/x86_win32/clwrapper -gnuwin32 -c -O2 -MD -GS -GR -Zi -nologo
-DHAVE_CONFIG_H -I. -I. -I. -I../../../../../include -D__WIN32__ -D_WIN32_WINNT=
0x0501 -D__x86__ -D__NT__ -D__OSVERSION__=4 -D_CRT_SECURE_NO_DEPRECATE=1 -Focexp
.o cexp.c
RegQueryValueEx failed - error 109

1 ответ

Я собираюсь ответить на свой собственный вопрос, потому что кажется, что никто не сталкивался с этой проблемой, и список рассылки очень тихий.

Кто-то предложил мне перекомпилировать src\tools\win32. Вот что я сделал, и я скопировал сгенерированные файлы.exe в bin\x86_win32. Затем я скомпилировал все omniORB и получил ошибку RegQueryValueEx.

Причина этого заключается в том, что при проверке src\tools\win32\bccwrapper.c в функции void GetMounts(void) он ищет этот путь в реестре: Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\ монтирует \%02X.

Когда я проверил это с помощью regedit, я заметил, что в ключах mounts->00, 01, 02, 03 и т. Д. Внутри этих ключей нет строковых значений 'unix' и 'native'. Поэтому я решил удалить все ключи, сохранил только 00 и добавил строковое значение "unix" и "native". После этого я перекомпилировал src \ tools \ win32 и скопировал созданные файлы.exe в bin \ x86_win32, и, наконец, когда я перекомпилировал весь omniOrb, он начал компилироваться (нужно тоже скопировать ssl-библиотеки) и успешно завершил работу.

Я действительно даже не знаю, как в мой реестр попало следующее: Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts\%02X.

С наилучшими пожеланиями, Марк

Я потратил довольно много времени, пытаясь скомпилировать OmniORB для Windows 10 с Visual Studio 2017.

Предполагая, что Cygwin64 был установлен в каталоге

C: \ Программное обеспечение \ cygwin64

Компиляция OmniORB довольно проста:

  • открыть командный терминал (cmd)
  • в этом терминале настройте визуальную среду:

"C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ VC \ Auxiliary \ Build \ vcvarsall.bat" x64

  • затем добавьте путь (добавьте, а не добавьте):

установить PATH=%PATH%;c:\software\cygwin64\bin

  • затем в файле config\config.mk раскомментируйте эту строку

платформа = x86_win32_vs_15

  • в файловых платформах \x86_win32_vs_15 установите PYTHON для назначения исполняемого файла python, в моем случае Python 3.6.5

PYTHON = / cygdrive / c / software / Python / python

  • наконец, начните компиляцию с make:

сделать экспорт

Надеюсь это поможет.

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