GCC相关

来源:互联网 发布:源码架设是什么意思 编辑:程序博客网 时间:2024/06/13 20:49

今天编译程序是把参数L和l的作用给忘记了。。。哎,今天一定要写下来,以后再忘记时可以参考(希望不要再忘记):

 

-llibrary 
  制定编译的时候使用的库 
  例子用法 
  gcc -lcurses hello.c 
  使用ncurses库编译程序 
   
-Ldir 
  制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不然 
  编译器将只在标准库的目录找。这个dir就是目录的名称。 


-Idir

  在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头

  文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他

  回先在你所制定的目录查找,然后再按常规的顺序去找.

 

例子:

gcc -o test -L../lib -lapi.so.0 test.c

 

编译成功后,运行时又报error while loading shared libraries,首先运行ldd test,查看运行时缺了什么库

解决方法:

做软连接到 /lib : ln -s /home/xxx/lib/api.so.0 /lib/api.so.0

重新加载库: /sbin/ldconfig -v

 

程序可以正常运行。

 

*还有一种方法没有试过:

在/etc/ld.so.conf中加入/home/xxx/lib这一行,保存之后,再运行:/sbin/ldconfig –v更新一下配置即可。

原创粉丝点击