我试图在我的计算机上安装dlib-18.16 for python(运行Mac OSX 10.10)。我已经安装了python以及X11,但是在下载文件后按照指示运行./compile_dlib_python_module.bat时我遇到了麻烦。
我得到的错误很多,但看起来像这样
[ 1%] Building CXX object dlib_build/CMakeFiles/dlib.dir/gui_widgets/fonts.o
In file included from /Users/xxx/Downloads/dlib-18.16/dlib/gui_widgets/fonts.cpp:14:
/Users/xxx/Downloads/dlib-18.16/dlib/gui_widgets/nativefont.h:313:21: error: use
of undeclared identifier 'XAllocColor'
XAllocColor(d, cmap, &xcol);
这会持续一段时间并以
结束/Users/xxx/Downloads/dlib-18.16/dlib/gui_widgets/nativefont.h:400:21: error: use
of undeclared identifier 'XFillRectangle'
XFillRectangle(d, pix, gc, 0, 0, width, height);
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[2]: *** [dlib_build/CMakeFiles/dlib.dir/gui_widgets/fonts.o] Error 1
make[1]: *** [dlib_build/CMakeFiles/dlib.dir/all] Error 2
make: *** [all] Error 2
我已经检查了一些丢失的函数,比如XFillRectangle,并发现它们在anaconda安装的python中的某些.h文件中声明(当查看dlib_build文件时,安装程序似乎找到了anaconda安装)。有没有人有任何想法如何解决这个问题?
答案 0 :(得分:1)
我意识到我必须进入CMakeCache.txt文件并手动将X11路径从anaconda更改为usr / X11,因为anaconda版本的X11 .h文件缺少某些XQuartz函数。现在一切都有效。
答案 1 :(得分:1)
我对PyPi中的版本( 19.4.0 )有这个问题。 直接从源代码安装( 19.4.99 )似乎有效。
因此,这两个版本之间的某些东西解决了这个问题。
从源代码安装的命令:
git clone https://github.com/davisking/dlib.git
cd dlib
pip install .
仅供参考,这里是我系统中的Xlib.h文件,因为推测是它选择了不同版本的XLib.h而没有这些符号。
使用Python 2.7在OS-X 10.11.4上运行。我肯定安装了XQuartz。
$ mdfind -name Xlib.h
/usr/local/Cellar/dlib/19.4/share/doc/dlib/docs/dlib/gui_core/xlib.h.html
/usr/local/Cellar/dlib/19.4/include/dlib/gui_core/xlib.h
/Users/<username>/Workspace/dlib/dlib/gui_core/xlib.h
/System/Library/Frameworks/Tk.framework/Versions/8.4/Headers/X11/Xlib.h
/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11/Xlib.h
/opt/X11/include/X11/Xlib.h
/opt/X11/include/cairo/cairo-xlib.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Versions/8.4/Headers/X11/Xlib.h
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers/X11/Xlib.h