【问题标题】:Where are package library and header files installed?包库和头文件安装在哪里?
【发布时间】:2014-12-19 04:24:58
【问题描述】:

在 Ubuntu 中下载并安装软件包后,如何检查库和头文件的写入位置?我认为这与包的 .pc 文件有关,但我也不知道如何找到该文件。

例如,我已经下载了 PCL(点云库)包,然后在一个示例 CMakeLists.txt 文件中,我得到了以下内容:

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

这些环境变量在哪里定义,如何查看?

如果我从源代码而不是通过包编译库,这会有什么不同吗?会自动创建 .pc 文件吗?

【问题讨论】:

  • echo $PCL_INCLUDE_DIRS
  • 这只是返回一个空行。但是,如上所述编译我的项目工作正常,因此它必须使用 PCL 库。它在其他地方搜索吗?
  • 如果您安装了 debian 软件包,您可以通过 dpkg -L 查看内容。如果您从源代码安装,它在很大程度上取决于源代码,您需要熟悉它使用的构建系统。
  • @Karnivaurus 你能检查我的答案是否正确吗?
  • 我也有类似的困惑。您可以在CMakeLists.txt 中使用message 命令检查${PCL_INCLUDE_DIRS} 解析为哪些值,即添加以下行:message("${PCL_INCLUDE_DIRS})message("PCL_INCLUDE_DIRS = " ${PCL_INCLUDE_DIRS})。当您运行 cmake .. 时,它将显示结果 对其他宏/变量执行相同操作,即 ${PCL_LIBRARY_DIRS}${PCL_DEFINITIONS}

标签: linux ubuntu cmake dpkg


【解决方案1】:

如果您安装包含 libpcl 开发文件的软件包

sudo apt-get install libpcl-dev

可以列出已安装的文件

dpkg -L libpcl-dev

查看所有标题的位置。

...
/usr/include/pcl-1.7/pcl/filters/fast_bilateral.h
/usr/include/pcl-1.7/pcl/filters/voxel_grid_covariance.h
/usr/include/pcl-1.7/pcl/filters/voxel_grid_occlusion_estimation.h
/usr/include/pcl-1.7/pcl/filters/median_filter.h
/usr/include/pcl-1.7/pcl/filters/crop_box.h
/usr/include/pcl-1.7/pcl/filters/voxel_grid_label.h
/usr/include/pcl-1.7/pcl/filters/covariance_sampling.h
/usr/include/pcl-1.7/pcl/filters/random_sample.h
/usr/include/pcl-1.7/pcl/filters/normal_refinement.h
/usr/include/pcl-1.7/pcl/filters/project_inliers.h
/usr/include/pcl-1.7/pcl/filters/fast_bilateral_omp.h
/usr/include/pcl-1.7/pcl/filters/clipper3D.h
/usr/include/pcl-1.7/pcl/filters/convolution.h
/usr/include/pcl-1.7/pcl/filters/passthrough.h
/usr/include/pcl-1.7/pcl/filters/conditional_removal.h
/usr/include/pcl-1.7/pcl/filters/impl
/usr/include/pcl-1.7/pcl/filters/impl/frustum_culling.hpp
/usr/include/pcl-1.7/pcl/filters/impl/conditional_removal.hpp
/usr/include/pcl-1.7/pcl/filters/impl/convolution_3d.hpp
/usr/include/pcl-1.7/pcl/filters/impl/voxel_grid_covariance.hpp
/usr/include/pcl-1.7/pcl/filters/impl/fast_bilateral_omp.hpp
/usr/include/pcl-1.7/pcl/filters/impl/project_inliers.hpp
/usr/include/pcl-1.7/pcl/filters/impl/morphological_filter.hpp
/usr/include/pcl-1.7/pcl/filters/impl/crop_box.hpp
/usr/include/pcl-1.7/pcl/filters/impl/covariance_sampling.hpp
/usr/include/pcl-1.7/pcl/filters/impl/local_maximum.hpp
/usr/include/pcl-1.7/pcl/filters/impl/plane_clipper3D.hpp
/usr/include/pcl-1.7/pcl/filters/impl/bilateral.hpp
/usr/include/pcl-1.7/pcl/filters/impl/voxel_grid_occlusion_estimation.hpp
....

【讨论】:

  • 非常感谢分享这么有用的命令。当在我的具有 PCL-1.8 的 Ubuntu 18.04 中键入时,我得到了一个很长的列表。所以,要了解更多,/usr/include/pcl-1.8/pcl/ 包含 PCL 头 文件; /usr/lib/x86_64-linux-gnu/ 包含 PCL 库(所有 .so 文件),对吧?但是其他目录呢:/usr/share/doc/libpcl-dev; /usr/share/doc/libpcl-dev/; /usr/lib/x86_64-linux-gnu/pkgconfig。我的意思是他们到底叫什么?我也试图了解CMakeLists.txtPCL 项目,所以你的回答将帮助我更好地理解这一点!
【解决方案2】:

默认情况下,库安装在 /usr/lib 中,头文件将在 /usr/include 中

库文件的扩展名通常为.so,对应的头文件为.h

gui查找已安装库的方法是打开软件中心->开发者工具->库

【讨论】:

    猜你喜欢
    • 2016-06-13
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    相关资源
    最近更新 更多