CMake错误:此项目中使用以下变量,但它们设置为NOTFOUND

时间:2012-05-23 10:11:43

标签: linux cmake configure

我正在尝试使用tar文件whalebot配置whalebot-0.02.00.tar.gz抓取工具。我用以下方法正确提取了它:

root@Admin1:~/dls# tar xvzf whalebot-0.02.00.tar.gz

之后我想用:

配置它
root@Admin1:~/dls/whalebot# ./configure

它给了我错误:

  

bash:./ configure:没有这样的文件或目录

我也运行了命令:

root@Admin1:~/dls/whalebot# cmake ./

它给了我以下结果:

root@Admin1:~/dls/whalebot# cmake ./
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Boost version: 1.44.0
-- Found the following Boost libraries:
-- filesystem
-- system
-- thread
-- program_options
-- date_time
CMake Warning (dev) at webspider/CMakeLists.txt:25 (link_directories):
This command specifies the relative path

../statsem_string/bin

as a link directory.

Policy CMP0015 is not set: link_directories() treats paths relative to the
source dir. Run "cmake --help-policy CMP0015" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at webspider/CMakeLists.txt:25 (link_directories):
This command specifies the relative path

../3dparty/google-url

as a link directory.

Policy CMP0015 is not set: link_directories() treats paths relative to the
source dir. Run "cmake --help-policy CMP0015" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
HTMLCXX_LIBRARY
linked by target "whalebot" in directory /root/dls/whalebot/webspider

-- Configuring incomplete, errors occurred!

我该如何处理?

2 个答案:

答案 0 :(得分:4)

看来CMake无法找到htmlcxx库。

whalebot documentation中,htmlcxx被列为依赖项。


您需要download htmlcxx,解压缩,然后安装它:

cd <path to unzipped htmlcxx>
./configure --enable-static=on --enable-shared=off
make
sudo make install

您可能需要将#include <cstddef>添加到html/tree.h的顶部才能成功构建。它默认会安装到usr/local/


如果您还没有安装icu,还需要安装{{3}}:

sudo apt-get install libicu-dev


最后,您现在可以构建并安装whalebot。同样,如果您有合理的最新升级安装,则可能会失败。

webspider/src/webspider_options.cpp的第57行,您需要将boost::filesystem::initial_path().native_directory_string()替换为boost::filesystem::initial_path().string()。然后你应该很好地构建和安装:

cd <path to unzipped whalebot>
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
sudo make install

默认情况下,这也会安装到usr/local/

答案 1 :(得分:0)

检查是否在CMakeLists中编写了find_library(..)find_path(.),然后将其替换为find_package(..)

它解决了我的情况下的错误。