【1】include头文件路径
除了默认的/usr/include,
/usr/local/include等include路径外,还可以通过设置环境变量来添加系统include的路径:
#
C
export
C_INCLUDE_PATH=XXXX:$C_INCLUDE_PATH
#
CPP
export
CPLUS_INCLUDE_PATH=XXX:$CPLUS_INCLUDE_PATH
以上修改可以直接命令行输入(一次性),可以在/etc/profile中完成(对所有用户生效),也可以在用户home目录下的.bashrc或.bash_profile中添加(针对某个用户生效),修改完后重新登录即生效。
【2】link链接库文件路径
链接库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的(也可以在编译命令中通过
-l
-L
来指定,这里讲的是使用系统默认搜索路径)。
一般
Linux
系统把
/lib
/usr/lib
/usr/local/lib
作为默认的库搜索路径,所以使用这几个目录中的链接库文件可直接被搜索到(不需要专门指定链接库路径)。对于默认搜索路径之外的库,则需要将其所在路径添加到gcc/g++的搜索路径之中。
链接库文件的搜索路径指定有两种方式:1)修改/etc/so.ld.conf
2)修改环境变量,在其中添加自己的路径
1)在环境变量中添加
动态链接库搜索路径:
export
LD_LIBRARY_PATH=XXX:$LD_LIBRARY_PATH
静态链接库搜索路径:
export
LIBRARY_PATH=XXX:$LIBRARY_PATH
以上修改可以直接命令行输入(一次性),可以在/etc/profile中完成(对所有用户生效),也可以在用户home目录下的.bashrc或.bash_profile中添加(针对某个用户生效),修改完后重新登录即生效。
2)在/etc/ld.so.conf
中添加指定的链接库搜索路径(需要root权限),然后运行
/sbin/ldconfig,以达到刷新
/etc/ld.so.cache的效果。
以上两种方式均可以达到指定链接库搜索路径的效果。
在Linux中函数调用头文件#include <iostream解决办法:
第一步:
输入命令:
echo|g++ -v -x c++ -E -
查看linux下g++的头文件安装目录,我的查看结果缺少环境变量
正确 结果应该是:
#include "..." search starts here:
#include <...>search starts here:
/usr/include/c++/9
/usr/include/x86_64-linux-gnu/c++/9
/usr/include/c++/9/backward
/usr/lib/gcc/x86_64-linux-gnu/9/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
经过查看对比发现缺少:/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed
第二步:输入编辑命令,以编辑器打开配置段
gedit /etc/profile
第三步:在文件编辑器中输入如图所示
第四步:保存
第五步:在一个项目中,需要在shell脚本文件中激活虚拟环境,然后在指定的虚拟环境中执行python脚本。source是bash shell的内置命令,用于读取filename脚本文件中的命令,并在当前shell执行。由于filename的执行环境是在当前shell,因此常用source命令在配置文件改变后,重新执行配置文件,避免重新登录。
source /etc/profile
第六步:g++指令运行代码测试(此处程序名:test1.c
g++ test1.c -o test1
运行通过!
(1)/:根目录\x0d\x0a(2)/bin:存放启动时所需要的普通程序\x0d\x0a(3)/boot:存放内核及启动所需要的文件\x0d\x0a(4)/dev:存放设备相关的文件\x0d\x0a(5)/etc:存放系统的配置文件\x0d\x0a(6)/home:存放用户文件的主目录,用户数据(cd~可进入自己的主目录)\x0d\x0a(7)/lib:存放启动时所需要的库文件\x0d\x0a(8)/mnt:存放临时的映射文件,通常是一些用来安装其他设备的子目录(如/mnt/cdrom/mnt/floppy)\x0d\x0a(9)/proc:这是一个虚拟的文件系统,存放当前系统的状态(有关进程和系统信息)\x0d\x0a(10)/root:超级用户主目录\x0d\x0a(11)/sbin:存放启动时所需要的系统管理程序\x0d\x0a(12)/tmp:存放启动时产生的临时文件\x0d\x0a(13)/usr:包含一般不需要修改的应用程序,命令程序文件,程序库,手册\x0d\x0a(14)/var:存放系统产生的经常变化的文件\x0d\x0a(15)/var/tmp:存放用户的临时文件\x0d\x0a(16)/usr/lib:存放非启动用的库文件\x0d\x0a(17)/lib/modules/:存放内核模块\x0d\x0a(18)/var/log:存放大多数日志文件\x0d\x0a(19)/var/run:存放运行时的信息\x0d\x0a(20)/var/lib:存放一些系统运行时需要的文件\x0d\x0a(21)/var/spool:存放邮件,新闻及打印序列\x0d\x0a(22)/etc/X11:存放X窗口系统所需要的配置文件\x0d\x0a(23)/etc/init.d:存放启动描述文件,包括各种模块和服务的加载描述\x0d\x0a(24)/etc/rcS.d:存放一些连接到/etc/init.d的文件,根据runlevel的不同而执行不同的描述\x0d\x0a(25)/etc/rc0.d---/etc/rc6.d:存放一些连接文件,只在指定的runlevel下执行相应的描述\x0d\x0a(26)/usr/X11R6,/usr/X11,/usr/Xfree86:存放X窗口系统所需要的文件\x0d\x0a(27)/usr/bin:存放应用程序二进制可执行文件\x0d\x0a(28)/usr/sbin:存放大部分系统程序\x0d\x0a(29)/usr/games:存放游戏程序及相应的数据\x0d\x0a(30)/usr/include:存放c和c++的头文件\x0d\x0a(31)/usr/info:存放GNUInfo程序所需要的数据\x0d\x0a(32)/usr/man:存放man程序所需要的数据\x0d\x0a(33)/usr/src:存放源代码文件\x0d\x0a(34)/usr/doc:存放文档文件\x0d\x0a(35)/usr/local:存放本地计算机所需要的文件\x0d\x0a(36)/usr/shared:存放各种共享文件欢迎分享,转载请注明来源:内存溢出
评论列表(0条)