本人对linux下的各种头文件、lib什么找不到从来都是一头雾水。这两天偶然要run一个项目,又遇到类似一个类似的问题,索性以这个问题为代表,认真总结一下相关的知识或者问题。
hdf5.h no such file or directory.我的项目背景在于编译一个c和matlab混合编程的工程,其中用到hdf5 library , hdf5-dev 等。本文apt-get install完成hdf5 的安装,并且example完成测试后,再行编译工程代码,出现no such file提示。
根据计算机编译的相关常识都知道,这个问题根源就如提示的那样,找不到那个文件,那么这个问题有两个,第一就是本机根本就没有这个文件,也就是没装,另外一个就是装了,但却没在默认搜索路径中。这个默认搜索路径,在window系统下就是环境变量、系统变量这些,在linux下就是/etc/profile那个文件。所以一般如果可以确定系统装了这个文件,那么剩下的就是找到文件所在路径,加入到环境变量中就行。加入示例其一如下:
export hdf5=/usr/local/hdf5
export PATH=$PATH:$hdf5/bin
#gcc找到头文件的路径(c编译器)
C_INCLUDE_PATH=$hdf5/include
export C_INCLUDE_PATH
#g++找到头文件的路径(c++编译器)
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:$hdf5/include
export CPLUS_INCLUDE_PATH
#找到动态链接库的路径
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$hdf5/include
export LD_LIBRARY_PATH
#找到静态库的路径
LIBRARY_PATH=$LIBRARY_PATH:$hdf5/include
export LIBRARY_PATH