我的应用程序根本无法链接到swscale库。我的意思是,我试图在代码中使用的任何swscale方法都会成为一个未定义的引用。我知道这个错误意味着什么--链接器找不到使用函数的任何定义。
但问题是我确保:
-L/usr/local/Cellar/ffmpeg/2.8.2/lib -lswscale在链接器输出中,链接器实际上找到了库,否则它会抱怨缺少swscale。$ll /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale*产出:
-r--r--r-- 1 myuser admin 519K Nov 20 19:33 /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.3.1.101.dylib
lrwxr-xr-x 1 myuser admin 24B Nov 20 19:32 /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.3.dylib -> libswscale.3.1.101.dylib
-r--r--r-- 1 myuser admin 607K Nov 20 19:32 /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.a
lrwxr-xr-x 1 myuser admin 24B Nov 20 19:32 /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.dylib -> libswscale.3.1.101.dylib$lipo -info /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.3.dylib产出:
Non-fat file: /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.3.dylib is architecture: x86_64我的机器架构:
$uname -m产出:
x86_64$nm /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.3.1.101.dylib | grep sws_alloc_context产出:
000000000004e3b4 T _sws_alloc_context这实际上是我正在尝试构建的QT应用程序。我应该提到,我对以同样的方式连接其他库没有问题。我还使用以下方法成功地编译了swscale-test.c (在libwscale源代码中):
clang swscale-test.c -lswscale -lavutil你知不知道哪里出了问题,或者我还能找出原因呢?
发布于 2015-11-22 03:27:02
您没有显示代码,但通常的问题是在编译extern "C"代码时,需要使用ffmpeg # c++语句(参见常见问题):
extern "C" {
#include "libswscale/swscale.h"
}对于所有其他的ffmpeg也是如此。
https://stackoverflow.com/questions/33841953
复制相似问题