环境:vs2010
1. 源码下载
地址:https://github.com/rsky/qrcode
可以使用git clone下载,也可以直接打包为zip文件下载。
该项目需要使用cmake编译,因此我们先下载cmake。
2.1 cmake下载
cmake可以从官网下载,为了避免设置环境变量的麻烦,我们直接下载安装包,安装的时候选择设置环境变量,然后就可以直接使用cmake命令了。
下载地址(截止目前,最新为3.9.1版本):
下载完成后直接安装就好了。注意选择设置环境变量。
然后在命令行中执行cmake命令,能正确执行则说明安装成功。否则需要手动在环境变量中添加cmake命令的路径。
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中编译时指定),同时根据系统编译环境指定编译参数。
然后打开cmd,进入到qrcode的libqr目录下,执行 cmake . 命令:
以上引用自:https://blog.csdn.net/qq_35583007/article/details/78874524
编译时发生如下错误:
修改:删除cvtres.exe,再编译
参考:https://www.cnblogs.com/newpanderking/articles/3372969.html
成功编译:
生成工程:
设置预处理 QR_DLL_BUILD (如果是编译静态库项目libqr_static则设置为 QR_STATIC_BUILD)
debug和Realease都设置
设置我们之前下载的zlib库头文件和lib库目录
将zlib.zip解压后如下图所示
Debug:
Release:
若编译报错如下,同上面一样,删除cvtres.exe
编译若报错:
(注意,编译时可能会提示 error LNK2019: 无法解析的外部符号 _snprintf 错误,我们替换所有snprintf为_snprintf,vsnprintf为_vsnprintf就可以了。)
最终会在Debug或者Release目录下(看你编译的是debug还是release版本)生成qr.lib和qr.dll两个文件,然后就可以在其他项目中使用了。