转自http://blog.csdn.net/kankan231/article/details/24243871

在Linux下编译链接或运行c/c++程序时可能会遇到找不到头文件,找不到库文件的错误,简单总结一下这些错误的解决方法

1,找不到头文件

解决方法一:在编译时使用 -I 来指定头文件的路径,例如把头文件放在 /home/user/include/ 目录下,则在编译时加上 -I /home/user/include/ ,如有多个目录,可多次使用-I来指定

解决方法二:将头文件的路径加入环境变量CPATH中,如 export CPATH=" /home/user/include/",也可以根据情况使用下面的三个环境变量:

C_INCLUDE_PATH 编译C程序时使用的环境变量,用于查找头文件。

CPLUS_INCLUDE_PATH 编译C++程序时使用的环境变量,用于查找头文件。

OBJC_INCLUDE_PATH 编译Obj-C程序时使用的环境变量,用于查找头文件。

CPATH 编译C/C++/Obj-C程序时使用的环境变量,用于查找头文件。

2,链接时找不到库文件

解决方法一:在链接时使用-L参数来指定库的路径,例如把某个自己制作的动态库放在/home/user/lib/目录下了,则链接程序时加上-L/home/user/lib/,同时可以使用-l来指定库的名称,如指定线程库:-lpthread

解决方法二:把库文件放入系统的库文件目录下,如/lib,/usr/lib等,操作系统运行该程序时会自动到这些目录下找库文件

解决方法三:把库文件所在的目录加入LIBRARY_PATH环境变量中,如 export LIBRARY_PATH=" /home/user/lib/"

3,运行时找不到动态库

解决方法一:把库文件放入系统的库文件目录下,如/lib,/usr/lib等

解决方法二:把库文件所在的目录加入LD_LIBRARY_PATH环境变量中,如 export LD_LIBRARY_PATH=" /home/user/lib/"

g++/gcc 链接头文件 库 PATH的更多相关文章

  1. gcc指定头文件路径及动态链接库路径

    gcc指定头文件路径及动态链接库路径   本文详细介绍了linux 下gcc头文件指定方法,以及搜索路径顺序的问题.另外,还总结了,gcc动态链接的方法以及路径指定,同样也讨论了搜索路径的顺序问题.本 ...

  2. C和C++中include 搜索路径的一般形式以及gcc搜索头文件的路径

    C和C++中include 搜索路径的一般形式 对于include 搜索的路径: C中可以通过 #include <stdio.h> 和 #include "stidio.h&q ...

  3. LINUX下C语言编程调用函数、链接头文件以及库文件

    LINUX下C语言编程经常需要链接其他函数,而其他函数一般都放在另外.c文件中,或者打包放在一个库文件里面,我需要在main函数中调用这些函数,主要有如下几种方法: 1.当需要调用函数的个数比较少时, ...

  4. windows下使用gcc完成头文件和目标文件编译

    环境要求 安装了gcc win+r然后输入cmd , dos界面输入 gcc -v 查看有没有安装gcc 进入正题 新建 text.c文件键入如下代码: #include <stdio.h> ...

  5. cmake 头文件 库文件 链接库

    原文地址:http://www.cnblogs.com/binbinjx/p/5626916.html 1. 添加头文件目录INCLUDE_DIRECTORIES 语法: include_direct ...

  6. C语言头文件、库文件的查找路径

    在 程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有些公用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使用.这样,可避免在每个 ...

  7. linux 头文件以及库的路径

    原来在编译的时候可以指定执行时去哪里找需要的lib文件,长知识了 本文详细介绍了Linux 下gcc头文件指定方法,以及搜索路径顺序的问题.另外,还总结了,gcc动态链接的方法以及路径指定,同样也讨论 ...

  8. g++ 链接*.a静态库 方法

    g++在链接*.a静态库时,直接作为object使用,不需要使用-l ,但是需要注意调整顺序,被依赖的文件放在后面. 如: g++  -g  -o0 -Wno-deprecated  -I$(INCL ...

  9. g++编译多个源原文件和头文件(转载)

    (头文件名是:Sales_item.hpp 源文件名:7-31.cpp和Sales_item.cpp)(点击我下载源文件) 方法1: 我用的命令是:g++ -o 7-31 7-31.cpp Sales ...

随机推荐

  1. 用jquery在必填表单字段前加红星总结

    一.总结: 今天公司项目中要求给表单中的必填字段添加标记,因为表单字段比较多,后期又有可能某些字段会有变化,所以写了一段js代码来给表单添加标记. html代码: js代码: 关键步骤: 1.红星的设 ...

  2. bzoj1006 神奇的国度

    Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系 ...

  3. LDAP过滤器使用说明(用户、组和容器的默认 LDAP 过滤器和属性)

    说明来源:http://docs.oracle.com/html/E35191_01/ldap-filters-attrs-users.html#ldap-filters-attributes-use ...

  4. 黄聪:Discuz!X/数据库操作方法、DB::table、C::t

    函数 功能 DB::table($tablename) 获取正确带前缀的表名,转换数据库句柄, DB::delete($tablename, 条件,条数限制) 删除表中的数据 DB::insert($ ...

  5. hive查询语句

    一. 为什么hive是数据仓库 hive局限于hdfs, 不能进行记录级别的增删改 hive底层的mapreduce启动耗时很长, 无法做到传统数据库的秒查, 只适合离线分析 hive不支持事务, 无 ...

  6. Scala第四章学习笔记(面向对象编程)

    延迟构造 DelayedInit特质是为编译器提供的标记性的特质.整个构造器被包装成一个函数并传递给delayedInit方法. trait DelayedInit { def deayedInit( ...

  7. 最最简单的~WordCount¬

    sc.textFile("hdfs://....").flatMap(line =>line.split(" ")).map(w =>(w,1)). ...

  8. linuc c 代码示例

    fork的应用: #include "stdio.h" #include "string.h" #include <sys/types.h> #in ...

  9. python(13)线程池:threading

    先上代码: pool = threadpool.ThreadPool(10) #建立线程池,控制线程数量为10 reqs = threadpool.makeRequests(get_title, da ...

  10. bug_ _java.lang.IllegalArgumentException: View not attached to window manager

    ============= 1   view not attached to window manager 转自:http://hi.baidu.com/spare_h/blog/item/7fa3e ...