[ffmpeg 扩展第三方库编译系列] frei0r mingw32 下编译问题

在编译安装frei0r的时候遇到两个错误地方,

两个都是在install的时候.

一开始编译都很顺利,输入了

make install之后就走开了,回来一看,报错误.

提示mkdir -p //usr/local/lib/frei0r-1错误,让我百思不得其解,一开始以为我手动创建就可以,于是到相关目录下创建了该文件夹.

再次install的时候还是不行.

于是我就想着去找百度,谷歌.终于有解决办法 是一下src/Makefile下的$(DESTDIR)/$(plugindir)多了一个/

需要改成$(DESTDIR)$(plugindir)有几个这样的地方,一并改了

然后这一步安装到是过去了,新的问题又来了。

报错.libs/目录下大量的so没有找到,我搜索源码目录,没有找到相关so文件,我就纳闷了

原来Mingw32把所有这些so文件编译成了.a.因此需要修改sofile=`basename $$file .la`.so;
改成sofile=`basename $$file .la`.a;
 
 

profile.d配置方案:

保存在/etc/profile.d/local.sh(由/etc/profile调用)

把/local/bin加入PATH,把/local/include、/local/lib加入编译器的头文件和库文件搜索路径。

Sh代码   收藏代码
  1. #! /usr/bin/sh  
  2.   
  3. export CPATH=/usr/local/include:/usr/include:$CPATH  
  4. export C_INCLUDE_PATH=/usr/local/include:/usr/include:$C_INCLUDE_PATH  
  5. export CPLUS_INCLUDE_PATH=/usr/local/include:/usr/include:$CPLUS_INCLUDE_PATH  
  6. export OBJC_INCLUDE_PATH=/usr/local/include:/usr/include:$OBJC_INCLUDE_PATH  
  7. export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:$LD_LIBRARY_PATH  
  8. export LIBRARY_PATH=/usr/local/lib:/usr/lib:$LIBRARY_PATH  
  9. export LIBPATH=/usr/local/lib:/usr/lib:$LIBPATH  

------------------

20111022补充

对于在Linux上自己编译安装的程序,由于在执行./configure --prefix=<绝对路径>指定的路径

一般在home目录中,所以编译存在依赖关系的程序时,通常要用

$ PKG_CONFIG_PATH=<绝对路径>/lib/pkgconfig/:$PKG_CONFIG_PATH ./configure --prefix=<绝对路径>

$ export PKG_CONFIG_PATH=<绝对路径>/lib/pkgconfig/:$PKG_CONFIG_PATH

$ ./configure --prefix=<绝对路径>

使configure能准确找到库安装的位置

使用

$ LD_LIBRARY_PATH=<绝对路径>/lib:$LD_LIBRARY_PATH ./xxx

$ export LD_LIBRARY_PATH=<绝对路径>/lib:$LD_LIBRARY_PATH

$ ./xxx

指定./xxx程序需要用到的.so文件所在的路径。

(如果使用sudo,则环境变量LD_LIBRARY_PATH的赋值必须跟在sudo后面

原文地址:https://www.cnblogs.com/subo_peng/p/5494989.html