【发布时间】:2014-01-19 06:49:54
【问题描述】:
我有一个使用 FindBoost.cmake 来定位 boost 的 cmake 控制包。我的两个用户向我报告了这个错误,但我无法在我的计算机上重现它。
在解决目标可执行文件的依赖项时,make 声称以下错误:
make[2]: *** No rule to make target `/usr/lib64/lib64/libboost_filesystem-mt.so.5', needed by `src/ht-asm'. Stop.
在添加目标“ht-asm”之前,我已经在我的 makefile 中设置了库目录:
link_directories(
${Boost_LIBRARY_DIRS}
)
我完全不知道这个问题,因为我从未在我的计算机上遇到过他们(一台使用 Debian 6,另一台使用 Fedora 18)。
【问题讨论】:
-
@ruslo 是的,我已经为每个目标设置了 target_link_libraries。
-
@ruslo 这个问题发生了两次。一开始我没有使用
link_directories,这个问题被用户反馈了。之后有人叫我加link_directories,这个问题又被举报了。 -
someone told me to add link_directories恕我直言不好的建议(: -
此文件不存在。我猜它应该是
/usr/lib64/libboost_XXX.so,但是 cmake 将此文件名分配为我的目标的依赖项。 -
@ruslo find_package(Boost REQUIRED COMPONENTS filesystem program_options regex system thread)