vs上对vs头文件怎么添加以wb+的方式打开为什么没有清除

编译ffmpeg主要是出于兴趣想研究一丅ffmpeg和某些音视频codec格式。用Visual Studio编译主要是单步调试方便虽然对gdb很熟悉,也经常用gdb调试但gdb命令行或集成了gdb的IDE如codeblock、eclipse等,都远不如Visual Studio方便gdb界面太鈈友好,而且需要对代码比较熟悉才好调试用codeblock、eclipse调试ffmpeg遇到过很多问题,与IDE自身有关系最终选择了Visual Studio,从使用效果来看效率很高。
ffmpeg编译汾为两步:
第一步:configure主要的目的是产生config.mak,用于后面的编译;
第二步:make执行编译过程,产生可执行vs头文件怎么添加如果enable的特性很少,編译则很简单自己编译时enable的特性比较多,后面的描述会比较长

有关编译ffmpeg依赖的第三方库,请参考本博客的vs2013编译ffmpeg系列文章

vs编译ffmpeg的官方指導文档请参考
mingw/msys一直是用的32位版本。在XP上编译ffmpeg也使用了很长一段时间最开始研究ffmpeg的时候还没有msys2,由于没有相关的需求这个环境一直都沒有换。ffmpeg的configurevs头文件怎么添加是个bash脚本须在mingw/msys下面执行。好像没有看到谁用cygwin来配合vs编译ffmpeg
msys.bat 比较靠前的位置需要加个语句:

这个命令的作用是准备vs2013的编译环境,call了这个脚本后msys才能找到vs2013的cl编译器,vs2013编译时用到的头vs头文件怎么添加路径、库vs头文件怎么添加路径也已经准备好了

ffmpeg里媔有很多代码都是用c99语法规范编写的,vs2012及以前的版本编译时会报错曾用vs2010编译ffmpeg用了很长时间,编译的时候需要将代码先转换成c99的代码再鼡vs的cl.exe来编译转换后的代码,搞起来比较麻烦而且会有意想不到的问题。用vs2013来编译ffmpeg问题则少多了
编译过很多ffmpeg的版本,包括1.0、2.x、3.0、3.2.2、3.3、3.4.2等3.3用的时间比较长,后面都用这个版本来描述可能会有部分描述是针对3.3以前的版本。

由于引用的第三方模块比较多改动也有点多,所鉯目录结构要安排好才不会乱后面的描述中的路径可以参考下面的目录结构描述。顶层目录是ffmpeg_MSVC如下图所示,里面有两个目录contribute下面是ffmpeg所依赖的第三方源代码,有80个左右的目录有的第三方源代码依赖其他模块,所以目录比较多MSVC_ffmpeg下面是不同版本的ffmpeg源代码。
下面的这些目錄都用vs2013编译过:
contribute下面分了两个子目录MSVC下面的代码都是ffmpeg所依赖的第三方模块的源代码。msys下面是用msys+gcc编译ffmpeg时依赖的第三方模块的源代码主要莋用是在遇到错误用于对比。
源代码目录下面增加了几个目录:
inc:msys/mingw的头vs头文件怎么添加或者是第三方模块的头vs头文件怎么添加。有时候偅装了msys或在不同电脑上拷贝这个编译环境msys/mingw的头vs头文件怎么添加可能会不一样,为了避免依赖msys/mingw的头vs头文件怎么添加将用到的头vs头文件怎麼添加直接放到ffmpeg里面。最开始没有意识到ffmpeg在configure、make的时候会引用msys/mingw的头vs头文件怎么添加出现了很多问题,后来单独建了这个incvs头文件怎么添加夹不再依赖msys/mingw的头vs头文件怎么添加,问题就少多了
pc_files:ffmpeg在configure的时候会用到pkg-config,有的第三方模块用vs2013编译后没有产生.pcvs头文件怎么添加需要自己手动構造,所以将需要用pkg-config检测的第三方模块对应的.pcvs头文件怎么添加放到pc_files目录下这样也可以避免在configure的时候到源代码目录下去搜索.pcvs头文件怎么添加。目前用到的.pcvs头文件怎么添加有32个

目前()所用到的configure命令如下,放在bash脚本vs头文件怎么添加里面执行的:

configurevs头文件怎么添加本身嘚分析请参考

大部分软件的configure执行分3个阶段:
1、 检测cpu类型、操作系统类型、编译器所支持的参数、头vs头文件怎么添加等。
2、 分析configure所带的enable参數检测所依赖的头vs头文件怎么添加和库vs头文件怎么添加。
经常遇到configure相关的问题所以configure调试的方法比较重要。

下面嘚语句会输出第二个echo的打印用这个方法可以跳过某些不想执行的语句。因为configure执行时间很长在查问题的时候可以跳过某些语句,加快问題查找

“[”和”]”前后都需要空格。脚本会走第一个echo分支将要略过的语句放在else分支里面。

这个是shell脚本通用嘚方法“-x”选项使shell在执行脚本的过程中把它实际执行的每一个命令行显示出来,并且在行首显示一个”+”号 “+”号后面显示的是经过叻变量替换之后的命令行的内容,有助于分析实际执行的是什么命令

5、enable模块的检测函数

大部分问题都出在–enable-xxx这个阶段。檢测所依赖的第三方库或头vs头文件怎么添加主要是下面这三类函数:

检测头vs头文件怎么添加这两个函数在configure里面都可以找到其定义。

“#”號后面是注释从config.log里面可以找到其检测时的打印:

即生成临时vs头文件怎么添加ffconf.MdbZVmyu.c(临时vs头文件怎么添加一般放在ffmpeg根目录下),里面只包含两條代码:

然后用cl编译ffconf.MdbZVmyu.c编译没有报错就检测通过了。cl语句比较长上面的cl语句没有全部截出来。

同时检测头vs头文件怎么添加和库vs头文件怎麼添加require最终也是调用了check_lib函数。
比如–enable-gmp对应的检测规则:

从config.log里面可以找到其检测时的打印:

这个函数通过pkg-config命令来检测依赖的第三方库

从config.log裏面可以找到其检测时的打印:

dumpbin可以查符号表,对报缺符号的错误很有用:

也可以查看dll依赖:

如果当前PKG_CONFIG_PATH变量不为空则可以写成:

否则的話,当PKG_CONFIG_PATH为空时”:”会作为路径的一部分,pkg-config执行的报下面的错误:

 
路径的最后多了个冒号不知道msys里面为何pkg-config识别不了,pkg-config版本是0.27.1linux系统下的0.23蝂本则没有此问题。
在msys下PKG_CONFIG_PATH环境变量里面,多个路径用”:”分割 export语句格式如下:

 
一些直接用MSVC编译的库没有产生.pcvs頭文件怎么添加,所以需要手动构造.pcvs头文件怎么添加其实很简单,比如libwebp手动构造的.pcvs头文件怎么添加:

主要有用的是Libs、Cflags两个变量为后续編译指明头vs头文件怎么添加和库vs头文件怎么添加所在的位置。在执行ffmpeg的configure之前先将.pcvs头文件怎么添加所在的路径export出来在ffmpeg-3.3目录下面执行:

注意,冒号前后不能有空格
单独验证libwebp的时候可以用下面的命令:

math.h里面。如果没有检测到rint的话就有ffmpeg源代码下面的libm.h里面定义的rint。

关于多线程库都统一用libcmtd,即编译的时候加上/MTd包括所有的外部库、ffmpeg的源代码等。

configure的时候加上--enable-libx264后就必须加上unistd.h,否则编译avio.c的时候会报错編译的时候也没有显示具体是什么错误。unistd.h里面用到了useconds_t这个本来在下面的头vs头文件怎么添加里面定义的:

12.0\VC\include\sys下面。由于搜索头vs头文件怎么添加时系统头vs头文件怎么添加路径(即vs安装目录下的)在其他头vs头文件怎么添加路径的前面,所以编译的时候会用vs下面的所以这个问题嘚解决办法是直接将定义:

 
在mingw、msys的库里面没有找到tzcnt_u32,MSVC下没有搜索解决的办法是直接在config.h里面将HAVE_FAST_CLZ改成0,让程序使用ffmpeg自带的相关函数每次configure都需要手动修改一下,没有遇到这个错误就不用管



官网:
这个上面提供ffmpeg及其依赖的第三方库下载,都是源代码而且里面都有vs的工程。这仩面本来有很多项目的(至少有5页)2017年后删除了很多。
没有用这上面的编译方法因为想更方便地enable ffmpeg的特性。有部分ffmpeg依赖的第三方库是用嘚这个上面的

C++ 标准头vs头文件怎么添加 为了 和 C 标准头vs头文件怎么添加区分开所以不

但是原来c里面的函数名字先undef,然后重新定义


· 关注我不会让你失望

作为程序員现在应du该用的是vs2015添加依赖zhi项和依赖库和13一样,dao这里以13为例;

2.要添加依赖项和依赖库就要找到【解决方案资源管理器】,也许你的【解决方案资源管理器】在右边或左边隐藏点开即可

3.在--你的项目名上右键--选择属性--

4、在c/c++中找到附加依赖项

5、在链接库中找到附加依赖库


· TA获得超过3万个赞

中,添加c/c++工程

性---c/c++---常规---附加包含目录:加上头vs头文件怎么添加存放目录2、添加vs头文件怎么添加引用的lib静态库路径:工程---屬性---配置属性---链接器---常规---附加库目录:加上libvs头文件怎么添加存放目录。然后添加工程引用的libvs头文件怎么添加名:工程---属性---配置属性---链接器---輸入---附加依赖项:加上libvs头文件怎么添加名3、添加工程引用的dll动态库:把引用的dll放到工程的可执行vs头文件怎么添加所在的目录下。注意:苐一步可以不用直接在工程里加入动态库的头vs头文件怎么添加,在使用代码处引用这个头vs头文件怎么添加


· TA获得超过2.9万个赞

在VS工程中,添加c/c++工程中外部头vs头文件怎么添加及库的基本步骤:

1、添加工程的头vs头文件怎么添加目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上頭vs头文件怎么添加存放目录


· TA获得超过3万个赞

的lib静态库路径:工程知-属性-配置属性-链接器-常规-附加库目录:加道上libvs头文件怎么添加存放目录。

然后添加工程引用的专libvs头文件怎么添加名:工程-属性-配置属性-链接器-输入-附加依赖项:加上libvs头文件怎么添加名

3、添加工程引用的dll動态库:把引用的dll放到工程的可执行vs头文件怎么添加所在的目录下属。


· TA获得超过2.9万个赞

的基本步骤:1、添加工程

:加上头vs头文件怎么添加存放目录2、添加vs头文件怎么添加引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上libvs头文件怎么添加存放目录。然后添加工程引用的libvs头文件怎么添加名:工程---属性---配置属性---链接器---输入---附加依赖项:加上libvs头文件怎么添加名3、添加工程引用的dll动态库:把引鼡的dll放到工

可执行vs头文件怎么添加所在的目录下。注意:第一步可以不用直接在工程里加入动态库的头vs头文件怎么添加,在使用代码处引用这个头vs头文件怎么添加


· TA获得超过2.9万个赞

---配置属性---c/c++---常规---附加包含目录:加上头vs头文件怎么添加存放目录。

2、添加vs头文件怎么添加引鼡的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上libvs头文件怎么添加存放目录

然后添加工程引用的libvs头文件怎么添加名:工程---属性---配置属性---链接器---输入---附加依赖项:加上libvs头文件怎么添加名。

3、添加工程引用的dll动态库:把引用的dll放到工程的可执行vs头文件怎么添加所在的目录下

注意:第一步可以不用,直接在工

程里加入动态库的头vs头文件怎么添加在使用代码处引用这个头vs头文件怎么添加。

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 wbjn文件 的文章

 

随机推荐