C语言常见编译问题

Linux下开发时经常使用第三方库,第三方工具编译安装完成后,相关库一般在自定义目录下,不在/lib 或者 /usr/lib下,

1.编译时

gcc -I/usr/local/xxx/include -c myprogram.c    使用 -I 指定头文件目录,编译产生目标文件 myprogram.o

gcc -o myprogram myprogram.o -L/usr/local/xxx/lib -lnameoflib   使用-L指定相关库所在目录  使用-l指定具体库的名字,编译产生可执行文件

2.执行时
如果不进行任何操作,执行时会找不到库文件的路径,报错:
  error while loading shared libraries: libxxx.so.4: cannot open shared object file: No such file or directory
解决办法:
    a.在/etc/ld.so.conf中指定库文件路径,执行:
        echo "/usr/local/xxx/lib" >> /etc/ld.so.conf
        ldconfig
    b.如果不想把路径放在配置文件中,执行:
        export LD_LIBRARY_PATH=/usr/local/xxx/lib:$LD_LIBRARY_PATH

posted @ 2018-03-26 15:23  NiGuard  阅读(162)  评论(0)    收藏  举报