Debian 入门安装与配置2
Debian 入门安装与配置2
1. C/C++开发必装软件
atp-get install gcc 这个不用说,用来编译C程序
apt-get install g++ 用来编译C++程序
apt-get install make 用来使用makefile文件编译程序
apt-get install autoconf
atp-get install automake
autoconf和automake这两个请参见:Linux下autoconf和automake使用
(未完待续)
2. C/C++源代码软件安装
源代码软件安装肯定是经典的三部曲,进入到源代码文件夹,然后进行以下三步操作:
./configure //参考:linux下configure命令详细介绍
make
make install
但经常会出现一些问题:(未完待续)
3. 关于C/C++的默认包含路径
GCC作为C/C++程序的编译器,其默认搜索目录决定了我们在程序编译时,一些需要包含的头文件(.h)和链接文件 (.a)去哪里寻找。
(1)查看默认路径
首先先来看看编译器的默认搜索路径都是那些,使用如下命令可以查询到GCC的默认头文件(#include<...>)搜索目录:
#对于C:
echo | gcc -v -x c -E -
#对于C++:
echo | g++ -v -x c++ -E -
注意:不明白这两个命令只有在root权限下才能看到路径相关内容,也许跟我安装时就是在root权限下有关。
下图所示g++ 4.9的默认包含目录:

可以看到默认搜索路径没有/usr/local/include/目录,因为我们一般下载源码编译安装后一般都安装在/usr/local/目录中(包括.h、.a、.so文件),所以这就可以解释我们明明编译了所依赖的源代码,但还是找不到所依赖项,因为编译器的默认搜索路径中没有包含我们编译安装后的文件路径。
相同道理,使用上述命令也可以查看默认链接文件(.a)的搜索目录,如下图所示:

运行时动态库路径一般与链接文件路径在一起。
(2)修改默认路径
如果想要为GCC编译器添加头文件(#include<...>)和链接文件的搜索路径,可以参考:An Introduction to GCC - for the GNU compilers gcc and g++
上面的链接中明确指出编译器依赖于下面几个宏来定位搜索路径,但是这几个宏在Debian 8中使用env命令查找后,发现没有,但是在使用上述命令查看时,却出现了LIBRARY_PATH宏,这个宏和我们自定义的宏怎么回事?在这一点上还有很多疑问,不太懂??????
下面就来简单翻译一下如何使用这几个宏,这几个宏都需要定义在文件(/etc/profile)中或者文件(/home/.bash_profile)中,定义在前者文件中,所有用户都能使用这些宏,定义在后者文件中,则只能定义宏的用户使用。
增加头文件搜索路径:
#对于C:
C_INCLUDE_PATH=/usr/include/freetype2
export C_INCLUDE_PATH
#对于 C++
CPLUS_INCLUDE_PATH=/usr/include/freetype2
export CPLUS_INCLUDE_PATH
#增加链接文件(.a)或静态库(.a)搜索路径:
LIBRARY_PATH=/usr/local/lib
export LIBRARY_PATH
#增加动态库(.so)搜索路径:
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
注意:无论我如何尝试,总是导出LD_LIBRARY_PATH失败,不知为什么??????
配置文件中的宏定义需要重启后才能生效,首先使用命令:
echo $C_INCLUDE_PATH
逐个查询所定义的宏是否生效,如果生效则使用上面的命令:echo | gcc -v -x c -E - 再次查看GCC默认搜索路径是否多出了我们新添加的路径,如下图所示:

可以看到其中多出了新添加的路径。
此外还有介绍/etc/ld.so.conf文件的,都与包含目录相关,可以参考:Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
Debian 入门安装与配置2的更多相关文章
- Debian 入门安装与配置1
Debian 入门安装与配置1 最近安装了多个发行版本的Linux,包括Ubuntu.Fedora.Centos和Debian,发现只有Debian在界面和稳定性等综合特性上表现最优,自己也最喜欢,所 ...
- MongoDB 学习笔记之 入门安装和配置
下载MongoDB: 下载解压即可使用. 为了启动方便和统一管理, 在Mongo根目录下建立/data, /logs, /conf文件夹. 在conf文件夹下建立mongodb.conf 文件,基本配 ...
- Mongodb入门——安装与配置
作者:zhanhailiang 日期:2014-11-07 1. 安装mongodb: [root@~/wade/nodejs/nodeclub]# yum search mongodb [root@ ...
- Maven入门-安装及配置(一)
0.Maven简介 三种仓库:
- Maven 3 入门 -- 安装与配置
Maven 3 入门 -- 安装与配置 Maven以及其Eclipse插件m2eclipse的安装 (本文参考了Maven实战) 检查JDK的安装以及环境变量的配置 打开cmd echo %Java_ ...
- OpenStack云计算快速入门之二:OpenStack安装与配置
原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...
- Jenkins入门系列之——02第二章 Jenkins安装与配置
2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...
- Debian普通用户获取root权限|sudo的安装与配置
Debian系统的普通用户需要安装软件时,往往会收到“Permission denied”的提示,这时候需要root权限.那么如何在不登陆超级管理员账户的前提下拥有root权限呢?对于大多数Linux ...
- Debian 8下vsftpd安装与配置
Debian 8下vsftpd安装与配置 0.环境 root@remote:/# uname -r 3.16.0-4-amd64 root@remote:/e# lsb_release No LSB ...
随机推荐
- Tomcat配置虚拟主机的两种方式
1.基于主机名的虚拟主机配置 在随意盘符下建立一个目录作为虚拟地址的目录.例如:F:\virtualhost1,在其下建立 test1.html,写入内容例如:test 在tomcat/conf/se ...
- ccpc 2016 省赛
1.configuration if ide. 2.file import and export. 3.check your program more than once. ============= ...
- 53个要点提高PHP编程效率
1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍. 2.$row[’id’] 的速度是$row[id]的7倍.3.echo 比 print 快,并且使用echo ...
- java二维数组的定义
java中的一维数组的定义都熟了,但是二位数组和一维数组的定义有些微差别.在网上看到了篇文章,总结的很详细.转载下了. 原文链接[http://blog.sina.com.cn/s/blog_6189 ...
- USB鼠标按键驱动
现象:把USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能 ...
- WDCP安装常用组件(memcache、mysqli、PDO_MYSQL、mysql innodb、libmcrypt、php zip)的方法
为有更好的性能,也为更简洁的系统,一些不是常用或不是基本的功能,都将做为可选的安装组件需要用到的就安装 注意:如果安装时遇到 ./configure: Permission denied提示,很有可能 ...
- (DFS)hdoj1312-Red and Black
题目链接 非常简单的DFS,初学DFS做这道题很合适.需要注意的是题目中输入的行和列顺序是颠倒的. #include<cstdio> #include<cstring> usi ...
- C++-bool的值
/////////////////////////////////////////////////////////////////////////////// // // FileName : boo ...
- LA 5061 LCA tarjan 算法
题目大意: 给定所有点的权值都为0,给定一棵树以后,每次询问都要求给定两点 x , y 和一个权值w,要求x,y路径上所有点权值加上w,最后求出每一个节点的值 这里因为查询和点都特别多,所以希望能最后 ...
- Matlab:max函数
Matlab中max函数在矩阵中求函数大小的实例如下: C = max(A)返回一个数组各不同维中的最大元素.如果A是一个向量,max(A)返回A中的最大元素.如果A是一个矩阵,max(A)将A的每一 ...