【发布时间】:2015-05-23 00:17:30
【问题描述】:
当我尝试从 ubuntu 机器上的源代码安装 flann 库时,我遇到了以下错误。
/flann-master/src [72] mkdir 构建
/flann-master/src [73] cd 构建
/flann-master/src/build [74] cmake ..
cpp/CMakeLists.txt:3 (add_definitions) 处的 CMake 警告 (dev): 未设置策略 CMP0005:预处理器定义值现已转义 自动地。运行“cmake --help-policy CMP0005”以获取策略详细信息。采用 cmake_policy 命令设置策略并抑制此警告。 此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。
cpp/CMakeLists.txt:114 处的 CMake 错误(安装): 为共享库目标安装没有 LIBRARY DESTINATION 的 TARGETS “flann_cpp”。
CMakeLists.txt 中的 CMake 警告(开发): 不存在 cmake_minimum_required 命令。一行代码如
cmake_minimum_required(2.8 版)
应该添加到文件的顶部。指定的版本可能更低 如果您希望为此项目支持较旧的 CMake 版本。更多 信息运行“cmake --help-policy CMP0000”。 此警告适用于项目开发人员。使用 -Wno-dev 来抑制它。
-- 配置不完整,出现错误!
/flann-master/src/build [75]
另一个问题中提到了解决方案。我应该在根目录中(包含 bin、src、examples 等)并且它解决了。我应该运行的文档中还有另一个缺失的部分
进行安装
由于我是远程机器上的 sudoer,我需要将它安装在我的主目录中。因此,我在 flann (flanninstall) 之外创建了一个新目录,并尝试了以下命令。
cmake -DCMAKE_INSTALL_PREFIX=/home/eson/matlab/flanninstall/ ..
我希望它可以帮助我在我的主目录中生成文件,我可以将它们复制或链接到 matlab。 但是,我将此地址中的文件复制到我在 matlab 中处理我的脚本的当前目录。 我仍然得到以下错误。
-> g++-4.4 -c -I/usr/local/MATLAB/2012a/extern/include -I/usr/local/MATLAB/2012a/simulink/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE -fPIC -fno-omit -frame-pointer -pthread -DMX_COMPAT_32 -O -DNDEBUG "nearest_neighbors.cpp"
nearest_neighbors.cpp:35:致命错误:flann/flann.h:没有这样的文件或目录 编译终止。
mex: '"nearest_neighbors.cpp"' 的编译失败。
使用 mex 时出错(第 206 行) 无法成功完成。
较早的 @rayryeng 帮助我进行了 MEX 设置,但是当我尝试在命令下运行时,我遇到了较早的问题。
mex -v -O nearest_neighbors.cpp
感谢您的建议。
【问题讨论】:
-
你必须执行根 CMakeLists.txt。你正在构建
/flann-master/src/build [74] cmake ..,即src/CMakeLists.txt,所以这是错误的。您必须将构建文件夹创建到根目录,然后运行它->/flann-master/build$ cmake .. -
谢谢@fenix688,我发现了这一点,并在我的问题中间提到了它。这是我遇到的第一个问题。
标签: c++ matlab ubuntu cmake flann