dlib编译出错以及解决方法

来源:互联网 发布:java spring框架详解 编辑:程序博客网 时间:2024/05/29 10:12

想在C++代码里用机器学习的方法,就找到dlib这个C++的机器学习的library。按照下边官网的方法编译例子出现了关于X11的error。

cd examplesmkdir buildcd buildcmake ..cmake --build . --config Release
</pre><pre name="code" class="plain"><p class="p1"><span class="s1"><strong>dlib-19.1/dlib/gui_widgets/nativefont.h:313:21: </strong></span><span class="s2"><strong>error: </strong></span><span class="s1"><strong>use of undeclared identifier 'XAllocColor'</strong></span></p><p class="p1"><span class="s1">                    XAllocColor(d, cmap, &xcol);</span></p>


在stackoverflow上很多人问到这个问题,主要有3种方法。

  1. 修改build下边CMakeCache.txt里的X11路径,把anaconda/include改成/usr/X11
  2. 修改dlib里边CMakeLists.txt里下边的这部分
    find_path(xlib_path Xlocale.h                  PATHS                   /Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include                  /usr/X11/include                  /opt/local/include                  PATH_SUFFIXES X11                  )
    改成
    find_path(xlib_path Xlib.h           PATHS           /Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/include           /usr/wherever/you/found/the/right/one           PATH_SUFFIXES X11           )

  3. 彻底删除/anaconda/include/X11/这个文件夹
除了以上三种方法还有人说重装XQarts。在我的机器上只有第三种方法能编译过(虽然有很多warning)。

0 0
原创粉丝点击