当前位置: 首页 > 工具软件 > libqrencode > 使用案例 >

libqrencode 4.1.1-VS2017 之 VC++编译,运用

公西翊歌
2023-12-01

生成lib ,参照:

https://blog.csdn.net/ljttianqin/article/details/73699777

但需修改。

一 。先建一win桌面-静态库。

二 。进去后 解决方案 项目名称上右键属性-和参照链接里的一样:属性 --> 配置属性 --> C/C++:

  1 预编译头-改成不使用预编译头

  2 预处理器-  加 HAVE_CONFIG_H;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS

      后面2个是处理警告C4996用的。

三。 拷贝全部.c 、.h文件,去掉 qrenc.c

四。自己添加 config.h 文件,编辑添加: 和链接完全一样,把里面的版本可以改一下。

       最后添加一行:

               #define STATIC_IN_RELEASE static

这样应该就可以了

=================================================

其实对于有些运用,需要VC++ 的各版本都进行编译,而且要32位和64位,那相应的生成的lib就要有一堆版本文件,因为生成的lib 只能对应vc的当前版本,比如vc2017生成的就只能2017下才能引用这个lib.

只能另外想办法,不生成lib,直接把他作为C++文件来用

方法:

        拷贝全部.c 、.h文件,去掉 qrenc.c,到你的项目里面,

        把.c文件改成.cpp文件。把cpp包含到工程。(H文件随意)。

        在工程中  #include "qrencode.h" 。

        A方法.  和上面编译lib一样,预处理器-加上面的那几个,出来什么错误就加什么。把上面刚改成cpp的那几个文件选中,右键,C/C++,预编译头-改成不使用预编译头。如果有什么警告,在项目的 属性 --> 配置属性C/C++常规里面,改警告不视为错误。

        B方法. 刚改成cpp的那每个文件的头上加 #include "StdAfx.h".这样才能预编译头。同时有什么问题,只要在 StdAfx.h里面加,比如可能会遇到:

        #define _ALLOW_RTCc_IN_STL 

        #pragma warning(disable: 4806)  //里面好像有个类型强行转换什么的警告。

  这样就可以用常规的预编译头了。修改后一劳永逸。

 类似资料: