首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对swscale函数的未定义引用

对swscale函数的未定义引用
EN

Stack Overflow用户
提问于 2015-11-21 09:51:23
回答 1查看 2.7K关注 0票数 1

我的应用程序根本无法链接到swscale库。我的意思是,我试图在代码中使用的任何swscale方法都会成为一个未定义的引用。我知道这个错误意味着什么--链接器找不到使用函数的任何定义。

但问题是我确保:

  1. -L/usr/local/Cellar/ffmpeg/2.8.2/lib -lswscale在链接器输出中,链接器实际上找到了库,否则它会抱怨缺少swscale
  2. 图书馆确实在那里: $ll /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale*

产出:

代码语言:javascript
复制
-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
  1. 图书馆的结构是正确的: $lipo -info /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.3.dylib

产出:

代码语言:javascript
复制
 Non-fat file: /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.3.dylib is architecture: x86_64

我的机器架构:

代码语言:javascript
复制
$uname -m

产出:

代码语言:javascript
复制
x86_64
  1. 这些符号存在于二进制中,例如: $nm /usr/local/Cellar/ffmpeg/2.8.2/lib/libswscale.3.1.101.dylib | grep sws_alloc_context

产出:

代码语言:javascript
复制
000000000004e3b4 T _sws_alloc_context
  1. 我还尝试了几个不同的swscale二进制文件,不仅是"brew“二进制文件,而且没有什么改变。我也试图在我的Ubuntu笔记本电脑上做同样的事情,但它仍然是一样的。

这实际上是我正在尝试构建的QT应用程序。我应该提到,我对以同样的方式连接其他库没有问题。我还使用以下方法成功地编译了swscale-test.c (在libwscale源代码中):

代码语言:javascript
复制
clang swscale-test.c -lswscale -lavutil

你知不知道哪里出了问题,或者我还能找出原因呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-22 03:27:02

您没有显示代码,但通常的问题是在编译extern "C"代码时,需要使用ffmpeg # c++语句(参见常见问题):

代码语言:javascript
复制
extern "C" {
#include "libswscale/swscale.h"
}

对于所有其他的ffmpeg也是如此。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33841953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档