我正在开发一个已经构建的共享库。
当我运行时,cmake -C $ILCSOFT/ILCSoft.cmake
输出在某个时刻显示:
-- Check for FastJet (3.1.2)
-- Check for FastJet_LIBRARIES: fastjet
-- Check for FastJet_FASTJET_LIBRARY: /cvmfs/foo...bar/FastJet/3.1.2/lib/libfastjet.so -- ok
...
CMAKE_PREFIX_PATH =
-- /cvmfs/foo...bar/v01-17-09/FastJet/3.1.2;
但是当我运行make install
我的 cc 文件时失败#include "fastjet/ClusterSequence.hh"
。
这意味着我没有正确设置我的 cmake。现在我正在尝试通过在我的中执行以下操作来添加我的 fastjet 依赖项CMakeLists.txt
:
FIND_PACKAGE( FastJet )
LINK_LIBRARIES( FastJet_LIBRARY )
没有抛出错误,但我无法导入我想要的东西。
我认为我不理解 cmake、make 和 cpp 导入。有人可以帮助我吗?
如何将这么大的库导入到我的 cmake 中?
答案1
如果它在包含阶段出现问题,那么它会找到问题所在的包含目录,而不是编译库的实际位置。从cmake 文档,因此请尝试添加库标头所在的位置。
包含目录
将包含目录添加到构建中。
include_directories([之后|之前] [系统] dir1 [dir2 ...])
将给定目录添加到编译器用来搜索包含文件的目录中。相对路径被解释为相对于当前源目录。