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

浙公网安备 33010602011771号