/lib,usr/lib,/usr/local/lib区别

本文详细介绍了Linux系统中关键目录的作用及其存储的内容,如/bin、/sbin、/usr、/lib等,帮助读者理解Linux文件系统的组织结构。

简单说,/lib是内核级的,/usr/lib是系统级的,/usr/local/lib是用户级的. /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。/lib目录下放置的是/bin和/sbin目录下程序所需的库文件。/lib目录下的文件的名称遵循下面的格式: libc.so.* ld* 仅仅被/usr目录下的程序所使用的共享库不必放到/lib目录下。只有/bin和/sbin下的程序所需要的库有必要放到/lib目录下。实际上,libm.so.*类型的库文件如果被是/bin和/sbin所需要的,也可以放到/usr/lib下。 /bin/ — 用来贮存用户命令。目录 /usr/bin 也被用来贮存用户命令。 /sbin/ — 许多系统命令(例如 shutdown)的贮存位置。目录 /usr/sbin 中也包括了许多系统命令。 /root/ — 根用户(超级用户)的主目录。 /mnt/ — 该目录中通常包括系统引导后被挂载的文件系统的挂载点。譬如,默认的光盘挂载点是 /mnt/cdrom/. /boot/ — 包括内核和其它系统启动期间使用的文件。 /lost+found/ — 被 fsck 用来放置零散文件(没有名称的文件)。 /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。 /dev/ — 贮存设备文件。 /etc/ — 包含许多配置文件和目录。 /var/ — 用于贮存variable(或不断改变的)文件,例如日志文件和打印机假脱机文件。 /usr/ — 包括与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。 /proc/ — 一个虚拟的文件系统(不是实际贮存在磁盘上的),它包括被某些程序使用的系统信息。 /initrd/ — 用来在计算机启动时挂载 initrd.img 映像文件的目录以及载入所需设备模块的目录。 警告 不要删除 /initrd/ 目录。如果你删除了该目录后再重新引导 Red Hat Linux 时,你将无法引导你的计算机。 /tmp/ — 用户和程序的临时目录。 /tmp 给予所有系统用户读写权。 /home/ — 用户主目录的默认位置。 /opt/ — 可选文件和程序的贮存目录。该目录主要被第三方开发者用来简易地安装和卸装他们的软件包。

编译lego-loam时,`/usr/bin/ld`提示找不到Boost相关库文件,且库文件在`/usr/local/lib`,可尝试以下解决办法: ### 更新库文件搜索路径 #### 临时更新 在终端中执行以下命令,可临时更新库文件搜索路径: ```bash export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH ``` 之后再尝试编译项目。 #### 永久更新 编辑`/etc/ld.so.conf`文件,添加`/usr/local/lib`这一路径,然后执行以下命令更新动态链接库缓存: ```bash sudo ldconfig ``` ### 修改CMakeLists.txt文件 在LeGO - LOAM项目的`CMakeLists.txt`文件中,确保正确设置了Boost库的路径和链接选项,示例如下: ```cmake # 设置Boost库的路径 set(BOOST_ROOT /usr/local) set(BOOST_LIBRARYDIR /usr/local/lib) # 查找Boost库 find_package(Boost 1.80 REQUIRED COMPONENTS thread date_time timer chrono) # 包含Boost头文件路径 include_directories(${Boost_INCLUDE_DIRS}) # 链接Boost库 target_link_libraries(your_target_name ${Boost_LIBRARIES}) ``` 这里的`your_target_name`需替换成LeGO - LOAM项目的实际目标名称。 ### 复制库文件 可将Boost库文件复制到系统默认的库搜索路径`/usr/lib`中,操作命令如下: ```bash sudo cp /usr/local/lib/libboost_thread.so* /usr/lib/ sudo cp /usr/local/lib/libboost_date_time.so* /usr/lib/ sudo cp /usr/local/lib/libboost_timer.so* /usr/lib/ sudo cp /usr/local/lib/libboost_chrono.so* /usr/lib/ ``` ### 重新编译项目 完成上述步骤后,清理项目的构建目录,然后重新编译项目: ```bash rm -rf build mkdir build cd build cmake .. make ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值