VS2008 使用 ffmpeg 64位静态库

Eraser的橡皮擦 2018-11-19 05:32:51
我使用mingw-w64成功编译了64位的ffmpeg静态库,在加入VS2008的工程的时候报如下错误,该怎么解决

1>正在链接...
1>msvcrtd.lib(MSVCR90D.dll) : error LNK2005: _wassert 已经在 libmingwex.a(lib64_libmingwex_a-wassert.o) 中定义
1>msvcrtd.lib(MSVCR90D.dll) : error LNK2005: _encode_pointer 已经在 libmingw32.a(lib64_libmingw32_a-mingw_helpers.o) 中定义
1>msvcrtd.lib(MSVCR90D.dll) : error LNK2005: _decode_pointer 已经在 libmingw32.a(lib64_libmingw32_a-mingw_helpers.o) 中定义
1> 正在创建库 ../../bin/Debug/WT_H264.lib 和对象 ../../bin/Debug/WT_H264.exp
1>WT_H264.exp : warning LNK4078: 找到多个“.drectve”节,它们具有不同的属性(00000200)
1>LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
1>LINK : warning LNK4199: 已忽略 /DELAYLOAD:OleAcc.dll;未找到来自 OleAcc.dll 的导入
1>libavutil.a(time.o) : error LNK2019: 无法解析的外部符号 nanosleep,该符号在函数 av_usleep 中被引用
...全文
167 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eraser的橡皮擦 2018-11-21
  • 打赏
  • 举报
回复
结贴了,换了个思路解决了。就是mingw的库和VS冲突了。
这次编译ffmpeg直接使用VS的msvc编译,不依赖mingw了
Eraser的橡皮擦 2018-11-20
  • 打赏
  • 举报
回复
引用 4 楼 zgl7903 的回复:
链接器->输入->忽略特定库: msvcrtd.lib

试过了,这样会出现很多符号找不到的错误。
Eraser的橡皮擦 2018-11-20
  • 打赏
  • 举报
回复
引用 5 楼 youyingbo 的回复:
看看ffmpeg里边的例子

ffmpeg没有给VS的例子,且可以肯定的是这个问题是mingw-w64的运行库和VS的冲突了
tiger波波 2018-11-20
  • 打赏
  • 举报
回复
看看ffmpeg里边的例子
zgl7903 2018-11-19
  • 打赏
  • 举报
回复
链接器->输入->忽略特定库: msvcrtd.lib



Eraser的橡皮擦 2018-11-19
  • 打赏
  • 举报
回复
引用 2 楼 smwhotjay 的回复:
编译成动态库也许能vc使用。

项目要求使用静态库,因为涉及到给客户二次开发,需要封装成SDK,领导不想给客户的时候带一堆别的依赖库。
其实动态库版本已经调通。
smwhotjay 2018-11-19
  • 打赏
  • 举报
回复
编译成动态库也许能vc使用。
smwhotjay 2018-11-19
  • 打赏
  • 举报
回复
vc的运行时库和mingw的运行时库应该会冲突。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧