CMake - 安装问题以制作软件包



为了安装dlib,我遵循了本教程:http://www.pyimagesearch.com/2017/03/27/how-to-install-dlib/。 我使用的是Mac OS X 10.12.5并使用Python 3.5。 我跑

$ brew install cmake
$ brew install boost
$ brew install boost-python --with-python3

它可以正常工作,没有任何错误。
但是当我尝试使用 pip 安装 dlib 时,请安装 dlib。我有一个错误:

The C compiler
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc"
is not able to compile a simple test program.
error: cmake configuration failed
ld: can't map file, errno=22 file '/usr/local/opt/qt/lib' for architecture x86_64

有关完整错误,请参阅此链接(不想粘贴完整错误(: https://gist.github.com/alexattia/3e98685310d90b65031db640d3ea716a

回溯错误后,当我尝试手动制作 dlib 时,我有这个:

Linking C executable cmTC_05e45
/usr/local/Cellar/cmake/3.8.2/bin/cmake -E cmake_link_script
CMakeFiles/cmTC_05e45.dir/link.txt --verbose=1

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-Wl,-search_paths_first -Wl,-headerpad_max_install_names
/usr/local/opt/qt/lib CMakeFiles/cmTC_05e45.dir/testCCompiler.c.o -o
cmTC_05e45

对于完整的跟踪,请展开:https://gist.github.com/alexattia/1e54ffb87c9eb4c811033f5cadd90331

我重新安装了XCode(来自Apple Store(和CMake(来自下载页面的3.8.2(,我什至安装了Qt Creator以获得干净的Qt版本,但我仍然有同样的错误。
我尝试使用 conda 安装它,但在安装后,我仍然没有 python 中的模块。

非常感谢您的任何帮助。

你评论说:

事实上,在我的.bash_profile中,我导出了LDFLAGS="/usr/local/opt/qt/lib", export CPPFLAGS="/usr/local/opt/qt/include", export PATH="/usr/local/opt/qt/bin:$PATH"。 但即使在评论它时,我仍然有同样的错误

你的LDFLAGSCPPFLAGS作业都没有意义,而且 第一个是与您有关的链接器故障的原因。

环境变量的值LDFLAGS(如果设置(由构建系统解释 作为链接选项。同样,环境变量的值CPPFLAGS,如果设置,则被解释为预处理器选项。

/usr/local/opt/qt/lib不是链接选项,/usr/local/opt/qt/include不是预处理器选项。这些只是目录名称。任何论点 您传递给链接器(或预处理器或编译器(不是一个选项是 由工具作为输入文件进行干预。因此,您引导链接者相信 该/usr/local/opt/qt/lib是链接的输入文件。

ld: can't map file, errno=22 file '/usr/local/opt/qt/lib' for architecture x86_64

是链接器在发现/usr/local/opt/qt/lib不是时所说的 一个文件。

大概,您希望指示链接器/usr/local/opt/qt/lib它应该在其中搜索链接所需的库的目录。 表达该意图的链接选项是:

-L/usr/local/opt/qt/lib

以下是用于链接的 GCC 选项

同样,您打算指示该预处理器/usr/local/opt/qt/include是它应该在其中搜索头文件的目录。预处理器 表达的选项是:

-I/usr/local/opt/qt/include

以下是用于预处理的 GCC 选项

指定编译或链接选项是不正常且不可取的 在您的 Bash 登录配置文件中,就像您正在做的那样。在 构建系统的输入文件(makefile,cmakelists文件或类似文件(,或作为参数 生成系统的配置。但是,如果您坚持在 您的 bash 登录配置文件,那么您应该指定:

LDFLAGS=-L/usr/local/opt/qt/lib
CPPFLAGS=-I/usr/local/opt/qt/include

一旦您在bash_profile中进行了这些环境设置,它们就会 仅在新的登录外壳中生效。

我遇到了类似的问题,但发现这是由于提升。

试试这个。

brew uninstall boost-python
brew uninstall boost
brew install boost-python --with-python3 --without-python
pip3 install dlib

最新更新