在为windows编译omniORB_4.1.6 64位时,有人遇到以下错误吗?"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
我将回答我自己的问题,因为似乎没有人遇到过这个问题,而且邮件列表非常安静。
有人建议我重新编译src\tools\win32。这就是我所做的,我将生成的.exe文件复制到bin\x86_win32中。然后,我编译了所有omniORB,得到了RegQueryValueEx错误。
原因是当您检查void GetMounts(void)函数中的src\tools\win32\bccwrapper.c时,它在注册表中查找以下路径:软件\天鹅座解决方案\ CYGWIN.DLL安装\ b15.0\安装\%02X.
当我使用regedit检查时,我注意到在mount->00、01、02、03等.键中,这些键中没有"unix"one_answers"native"字符串值。所以我决定删除所有的键,只保留00,并添加一个"unix"one_answers"native"字符串值。之后,我重新编译了src\tools\win32,并将创建的.exe文件复制到bin\x86_win32,最后,当我重新编译所有omniOrb时,它开始编译(也需要复制ssl-lib)并成功完成。
我真的不知道以下内容是如何进入我的注册表的:软件\天鹅座解决方案\ CYGWIN.DLL安装\ b15.0\安装\%02X.
谨致问候,标记
我花了相当长的时间试图用visual studio 2017在windows 10上编译OmniORB。
假设Cygwin64安装在目录中
c: \software\cygwin64
,OmniORB的编译非常简单:
- 打开命令终端(cmd)
- 在该终端中,设置Visual环境:
"C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\VC\Axiliary\Build\vcvarsall.bat"x64
- 然后,追加路径(yes append and not prepend):
设置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开始编译:
进行出口
希望这能有所帮助。