分类 Linux软件开发 下的文章

一般情况Cmake的find_package会去默认的路径搜索指定的包 例如: find_package(OpenCV 2.3 REQUIRED) Cmake会去/usr/share/目录下查找OpenCVConfig.cmake文件 但时候装了多个Opencv的包,那么应用程序编译时就需要指定具体包的安装路径. 1: 设置CMake的find_package搜索路径 set CMAKE_PREFIX_PATH " include cmake" 比如: 自己用源码安装的openCV路径为: /home/opencv_INSTALL/ bin include lib share/OpenCV-OpenCVConfig.cmake 那么在CmakeList设置为:set( CMAKE_PREFIX_PATH "/home/opencv_INSTALL/share") 既可. 2: 新增头文件和库文件路径 set(PCL_INCLUDE_DIRS "/you inc dir") include_directories(${PCL_INCLUDE_DIRS}) set(PCL_LIBRARY_DIRS "/you lib dir") link_directories(${PCL_LIBRARY_DIRS}) 3: 增加链接库,比如libpcap.so target_link_libraries (cloud_viewer ${PCL_LIBRARIES} pcap)

gdb调试core文件或进程时,出现加载so库符号失败,错误信息如下 warning: Could not load shared library symbols for ../libadd.so Do you need "set solib-search-path" or "set sysroot"? 设置gdb的solib-search-path选项, 指定加载失败的so的搜索路径即可。 solib-search-path可以指定多个路径。在linux上,路径之间用冒号分隔,命令如下: (gdb) set solib-search-path /var:/home

set tags=tags; set autochdir 注意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目 录中查找,一直向上递归。这样可以不用必须在根目录(和tags文件目录)打开文件,也能够自动跳转。

1、cpld.bash脚本内容如下: \#=================================================== function useage() { cat << EOU Useage: bash $0 EOU exit 1 } \#Validate the inputs [[ $# < 2 ]] && useage \#Check if the paths are vaild [[ ! -e $1 ]] && echo "Not a vaild input $1" && exit 1 [[ -d $2 ]] || echo "No such directory $2 creating..."&& mkdir -p "$2" \#Get the library dependencies echo "Collecting the shared library dependencies for $1..." deps=$(ldd $1 | awk 'BEGIN{ORS=" "}$1\ ~/^\//{print $1}$3~/^\//{print $3}'\ | sed 's/,$/\n/') echo "Copying the dependencies to $2" \#Copy the deps for dep in $deps do echo "Copying $dep to $2" cp "$dep" "$2" done echo "Done!" 2、使用方法 bash cpld.bash <可执行文件名> <要保存依赖库的目录> for example: bash cpld.bash demo /home/temp/