环境:vs2010

1. 源码下载

地址:https://github.com/rsky/qrcode

可以使用git clone下载,也可以直接打包为zip文件下载。

2. 编译

该项目需要使用cmake编译,因此我们先下载cmake。

2.1 cmake下载

cmake可以从官网下载,为了避免设置环境变量的麻烦,我们直接下载安装包,安装的时候选择设置环境变量,然后就可以直接使用cmake命令了。

下载地址(截止目前,最新为3.9.1版本):

下载完成后直接安装就好了。注意选择设置环境变量。 
然后在命令行中执行cmake命令,能正确执行则说明安装成功。否则需要手动在环境变量中添加cmake命令的路径。

libqr在VS下的编译

2.2 编译qrcode库

进入qrcode库所在目录,在libqr文件夹下有个CMakeLists.txt文件,在编译之前我们先修改一下这个文件。

说明一下,该项目依赖于zlib库,因此没有zlib库的朋友需要先下载zlib库,可以去下载源码编译,也可以使用我已经编译好的库直接使用。

已编译好的库下载地址:https://pan.baidu.com/s/1nuErVtv

下载zlib库之后,我们先编辑CMakeLists.txt文件。

修改22-24行,替换为以下内容:

##############################################################################
#find_package(ZLIB)
#set my own zlib path
set (ZLIB_INCLUDE_DIRS "")  #set in visual studio
set (ZLIB_LIBRARIES "")     #set in visual studio

#add_definitions(-Wall -Wextra)
# Set default compile flags for GCC
if(CMAKE_COMPILER_IS_GNUCXX)
 message(STATUS "GCC detected, adding compile flags")
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++98 -pedantic -Wall -Wextra")
endif(CMAKE_COMPILER_IS_GNUCXX)
##############################################################################

主要意思是将zlib的引用目录设置为空(我们将在VS中编译时指定),同时根据系统编译环境指定编译参数。

libqr在VS下的编译

然后打开cmd,进入到qrcode的libqr目录下,执行 cmake . 命令:

以上引用自:https://blog.csdn.net/qq_35583007/article/details/78874524

编译时发生如下错误:

libqr在VS下的编译

修改:删除cvtres.exe,再编译

libqr在VS下的编译

 参考:https://www.cnblogs.com/newpanderking/articles/3372969.html

成功编译:

libqr在VS下的编译

生成工程:

libqr在VS下的编译

设置预处理 QR_DLL_BUILD (如果是编译静态库项目libqr_static则设置为 QR_STATIC_BUILD)

debug和Realease都设置

libqr在VS下的编译

设置我们之前下载的zlib库头文件和lib库目录

将zlib.zip解压后如下图所示

libqr在VS下的编译
 

libqr在VS下的编译

Debug:

libqr在VS下的编译

Release:

libqr在VS下的编译

若编译报错如下,同上面一样,删除cvtres.exe

libqr在VS下的编译

libqr在VS下的编译

编译若报错:

libqr在VS下的编译

(注意,编译时可能会提示 error LNK2019: 无法解析的外部符号 _snprintf 错误,我们替换所有snprintf为_snprintf,vsnprintf为_vsnprintf就可以了。) 
最终会在Debug或者Release目录下(看你编译的是debug还是release版本)生成qr.lib和qr.dll两个文件,然后就可以在其他项目中使用了。

 

相关文章:

  • 2021-07-17
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-10
  • 2022-01-09
  • 2021-06-05
  • 2022-12-23
  • 2022-01-01
  • 2022-12-23
  • 2021-11-11
相关资源
相似解决方案