g++/gcc 链接头文件 库 PATH
转自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的更多相关文章
- gcc指定头文件路径及动态链接库路径
gcc指定头文件路径及动态链接库路径 本文详细介绍了linux 下gcc头文件指定方法,以及搜索路径顺序的问题.另外,还总结了,gcc动态链接的方法以及路径指定,同样也讨论了搜索路径的顺序问题.本 ...
- C和C++中include 搜索路径的一般形式以及gcc搜索头文件的路径
C和C++中include 搜索路径的一般形式 对于include 搜索的路径: C中可以通过 #include <stdio.h> 和 #include "stidio.h&q ...
- LINUX下C语言编程调用函数、链接头文件以及库文件
LINUX下C语言编程经常需要链接其他函数,而其他函数一般都放在另外.c文件中,或者打包放在一个库文件里面,我需要在main函数中调用这些函数,主要有如下几种方法: 1.当需要调用函数的个数比较少时, ...
- windows下使用gcc完成头文件和目标文件编译
环境要求 安装了gcc win+r然后输入cmd , dos界面输入 gcc -v 查看有没有安装gcc 进入正题 新建 text.c文件键入如下代码: #include <stdio.h> ...
- cmake 头文件 库文件 链接库
原文地址:http://www.cnblogs.com/binbinjx/p/5626916.html 1. 添加头文件目录INCLUDE_DIRECTORIES 语法: include_direct ...
- C语言头文件、库文件的查找路径
在 程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有些公用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使用.这样,可避免在每个 ...
- linux 头文件以及库的路径
原来在编译的时候可以指定执行时去哪里找需要的lib文件,长知识了 本文详细介绍了Linux 下gcc头文件指定方法,以及搜索路径顺序的问题.另外,还总结了,gcc动态链接的方法以及路径指定,同样也讨论 ...
- g++ 链接*.a静态库 方法
g++在链接*.a静态库时,直接作为object使用,不需要使用-l ,但是需要注意调整顺序,被依赖的文件放在后面. 如: g++ -g -o0 -Wno-deprecated -I$(INCL ...
- g++编译多个源原文件和头文件(转载)
(头文件名是:Sales_item.hpp 源文件名:7-31.cpp和Sales_item.cpp)(点击我下载源文件) 方法1: 我用的命令是:g++ -o 7-31 7-31.cpp Sales ...
随机推荐
- 【shell】 for循环
#!/bin/bash for i in 1,3,4,6 ##有几个数就循环几次 do echo $i done for m in $( cat /root/num.log) ## /root/num ...
- usaco 2010年3月银组题解
usaco银组解题报告 一.石子游戏如果把‘O’当作0,‘X’当做1,则N个洞的每一种状态都可以看做是一个N位二进制数.于是,这个问题就变成了求环绕的N位格雷码.幸运的是,这个结构很容易就能够用一个简 ...
- 已跳过 'cache' -- 节点处于冲突状态
svn resolved ./cache ./cache 为冲突文件路径“cache”的冲突状态已解决
- 减小Gcc编译程序的体积
众所周知,Gcc编译的原始程序一般很大,其实有几种方法能大大减小目标代码的体积,一般有以下几种方法. 基本知识来源:http://www.mingw.org/wiki/Large_executable ...
- 从网站上复制代码到MyEclipse后每行都是字符编码错误的解决办法
注意图中的工具栏的按钮:Show Whitespace Characters(Window->Preferences->General->Editors->Text Edito ...
- HDU 5701 中位数计数
这题真的很恶心,做了一天,最后问学长,才懂题意是什么,原来我一直都没读懂题.这我真的就无语了,你的题意多两句话会死啊?你测试样例多两个例子就不行啊?真蛋疼,题意都不懂,还做个shi? 题里说的是区间, ...
- HDU 1257 最少拦截系统(贪心)
解题思路:用一个vector存下数据,从头开始非递增遍历,并把符合条件的删除,一次操作,ans++,当vector为空时退出循环.(PS:学到了vector的erase操作,竟然还有返回值,涨姿势了) ...
- sql中实现split()功能
http://www.cnblogs.com/yangyy753/archive/2011/11/23/2260618.html 数据库中,总是遇到一些字段内容,想根据某个标识截取一下字符串,可是都想 ...
- 深入理解Javascript
http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 1.编写高质量JavaScript代码的基本要点 2.Javascript函数 ...
- JAVA实例,判断是否是瑞年
题目:用户输入一个年份,返回是否是瑞年. 瑞年规则:能被4整除,并且不能能被100整除,或者能被400整除的年份称之为瑞年. 实例: import java.util.Scanner; public ...