在vs2010中,根据已有代码和第三方静态库创建项目

来源:互联网 发布:2017网络电影 编辑:程序博客网 时间:2024/06/03 14:52

    一直在linux下编译程序,第一次用vs2010编译程序,遇到不少问题,特别是添加第三方静态库的时候,出现的错误很难排查。好在最终成功,写下来以供以后参考。

     从网上下载了海思h264解码程序的源文件以及提供的静态库,接下来就开始用vs2010建立工程。

    1、从原有项目中创建工程

   

   

    2、直接点下一步

   


    3、选择项目文件所在位置,给项目命一个名字

   


    4、在项目类型中选择“控制台应用程序项目”,然后一路下一步,直到完成创建

   


    创建成功后,直接按F7键生成解决方案,这时候报错:

   

    这些无法解析的外部符号是在海思提供的库文件hi_h264dec_w.lib中,因此需要把库文件添加进来。有两种方法:

    1)显式的添加该库文件

            比如该库文件在 D:\decoder\lib 目录下,那么就在代码中添加一句:#pragma comment(lib, "hi_h264dec_w.lib")

            如果提示找不到或者无法打开,那么就加个绝对路径                        :#pragma comment(lib, "D:\\decoder\\lib\\hi_h264dec_w.lib")

            hi_h264dec_w.lib就是所需的静态库文件。(注意,路径中“\"需要转义,因此要写成“\\")。

     2)在配置中添加:

             按Alt+F7 打开项目属性对话框,配置属性-》链接器-》输入-》附加依赖项,添加该库文件的名字。注意该库文件跟前面以分号隔开

            


    问题又来了,按Ctrl+Alt+F7重新生成解决方案,出现这个错误:

   

    网上找到海思的帮助手册:

   

    原来是需要把这四个库文件给排除掉,那么就在配置中忽略

       

     

    依然报同样的错误,那么在刚才忽略的位置再加上libmmt.lib

   


    接下来又有新的错误:


   

     那么重复刚才的步骤,把libcmt.lib也忽略掉即可。

   

    其实忽略特定库,还有一个方法,比如要忽略libcmt.lib库,可以在代码中加上一句:#pragma comment(linker, "/NODEFAULTLIB:libcmt.lib")

    到此,终于编译成功。

0 0