PCL Targets may link only to libraries

Warning: Targets may link only to libraries. CMake is dropping the item.

使用PCL报warning:

WARNING: Target "generate_pointcloud" requests linking to directory "/home/xxx/pcl/lib".  Targets may link only to libraries.  CMake is dropping the item.

解决方法:
删除CMakeLists.txt里面的LINK_LIBRARIES( ${PCL_LIBRARY_DIRS} )即可,但ADD_EXECUTABLE后面必须有TARGET_LINK_LIBRARIES,否则报错。


未删除前整个cmake输出如下:

-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   thread
--   date_time
--   iostreams
--   serialization
--   chrono
--   atomic
--   regex
-- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) 
** WARNING ** io features related to ensenso will be disabled
-- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) 
** WARNING ** io features related to davidSDK will be disabled
-- Could NOT find DSSDK (missing: _DSSDK_LIBRARIES) 
** WARNING ** io features related to dssdk will be disabled
** WARNING ** io features related to pcap will be disabled
** WARNING ** io features related to png will be disabled
** WARNING ** io features related to libusb-1.0 will be disabled
-- Could NOT find ensenso (missing: ENSENSO_LIBRARY ENSENSO_INCLUDE_DIR) 
** WARNING ** visualization features related to ensenso will be disabled
-- Could NOT find DAVIDSDK (missing: DAVIDSDK_LIBRARY DAVIDSDK_INCLUDE_DIR) 
** WARNING ** visualization features related to davidSDK will be disabled
-- Could NOT find DSSDK (missing: _DSSDK_LIBRARIES) 
** WARNING ** visualization features related to dssdk will be disabled
-- Could NOT find RSSDK (missing: _RSSDK_LIBRARIES) 
** WARNING ** visualization features related to rssdk will be disabled
-- looking for PCL_COMMON
-- looking for PCL_OCTREE
-- looking for PCL_IO
-- looking for PCL_KDTREE
-- looking for PCL_SEARCH
-- looking for PCL_SAMPLE_CONSENSUS
-- looking for PCL_FILTERS
-- looking for PCL_2D
-- looking for PCL_GEOMETRY
-- looking for PCL_FEATURES
-- looking for PCL_ML
-- looking for PCL_SEGMENTATION
-- looking for PCL_VISUALIZATION
-- looking for PCL_SURFACE
-- looking for PCL_REGISTRATION
-- looking for PCL_KEYPOINTS
-- looking for PCL_TRACKING
-- looking for PCL_RECOGNITION
-- looking for PCL_STEREO
-- looking for PCL_APPS
-- looking for PCL_OUTOFCORE
-- looking for PCL_PEOPLE
-- Configuring done
WARNING: Target "generate_pointcloud" requests linking to directory "/home/han/pcl/lib".  Targets may link only to libraries.  CMake is dropping the item.
-- Generating done
-- Build files have been written to: /home/xxx/RGBD-slam/part II/build

我的CMakeLists.txt如下:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
project(test_seg_pcl)
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")
find_package(OpenCV 3.4 REQUIRED) 
find_package(PCL 1.7 REQUIRED)
message(STATUS "PCL版本: ${PCL_VERSION}")
INCLUDE_DIRECTORIES( ${PCL_INCLUDE_DIRS}  )
LINK_LIBRARIES( ${PCL_LIBRARY_DIRS} )
ADD_DEFINITIONS( ${PCL_DEFINITIONS} )
ADD_EXECUTABLE( generate_pointcloud generatePointCloud.cpp )
TARGET_LINK_LIBRARIES( generate_pointcloud ${OpenCV_LIBS}  ${PCL_LIBRARIES} )

这时,在终端编译就会报本文开头的warning。本来这个warning对编译没什么影响,make也不会报错,但作为强迫症患者,我就想解决这个问题。但搜索了半天,还是没有找到解决方法,偶然间在别人的博客中看到了一句,link_libraries已经被弃用,使用TARGET_LINK_LIBRARIES替代,故抱着试一试的态度,删掉了LINK_LIBRARIES( ${PCL_LIBRARY_DIRS} ),随后,就没有出现这个warnning了,即解决了。


参考:
[1]: https://blog.csdn.net/harryhare/article/details/89143410
[2]: https://cmake.org/cmake/help/v3.0/command/link_libraries.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值