如何成功将qrencode源码编译成动态链接库的实践经历?

2026-04-28 15:282阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计694个文字,预计阅读时间需要3分钟。

如何成功将qrencode源码编译成动态链接库的实践经历?

在Windows环境下使用VS2022建立动态库工程,下载源码后,需包含以下步骤:

1. 下载源码:访问[https://github.com/fukuchi/libqrencode](https://github.com/fukuchi/libqrencode)。

2.解压源码包,进入项目目录。

3.在项目目录下,创建一个Visual Studio 2022项目。

4.将`test`、`use`文件夹和`CMakeLists.txt`文件添加到项目中。

5.在项目中配置CMake,确保所有必要文件和路径正确。

如何成功将qrencode源码编译成动态链接库的实践经历?

在网上搜二维码库:qrencode,源码下载:github.com/fukuchi/libqrencode 我的是windows环境,IDE是vs2022。 建立一个动态库的空工程。 把源码下载下来,其中test文件夹 use文件夹 和cmake文件夹我没有使用,直接把根目录的所有.h和.c复制,然后在vs的项目里粘贴。 因为使用了png.h 头文件,所以nuget搜索:libpng,注意看标记一栏的编译器支持版本,v120,v140,vs2022使用的是更高版本的,所以需要visualstudio installer 修改 添加 v140或v120版本,否则贬义时会报link错误,比如: ”错误 LNK2019 无法解析的外部符号 png_create_write_struct,函数 writePNG 中引用了该符号“ 因为代码里用了很多windows环境下过时的方法,会报错 c4996。 错误 C4996 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS 需要在项目里设置,右键项目,选择属性,c/c++一栏 选择高级,找到右侧的特定警告,输入4996添加。 除了这个,还需要在预编译头里,不适用预编译头。 做了这些工作,这个项目大概率是能1成功,0error,0warnning的。 然后就是写dll的接口了,再写接口前,先了解以下这个库,这个库的主要对象是QRcode, 主要方法是: QRcode *QRcode_encodeString(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive) 输出图片文件:static int writePNG(const QRcode *qrcode, const char *outfile, enum imageType type) 我就写了两个接口,一个是供c++环境使用的生成图片的,一个是供c#使用,可以自定义二维码图片尺寸的。 因为这个是库是作者用c语言写的,所以,导出的接口可以这样写: __declspec(dllexport) int Method(int arg,const char*fileName) 重点在这里:__declspec(dllexport)。 到这里,就能使用这个库了。不过我生成的二维码的大小是固定的。自己不太了解这个库的具体内容,只是简单尝试了以下,作为练习,并没有运用到工作中去。可能还有很多坑,自己没遇见。 c++调用方如何使用这个库,详情: www.cnblogs.com/HelloQLQ/p/16364842.html c#调用方如何调用这个库,详情: www.cnblogs.com/HelloQLQ/p/16364888.html

本文共计694个文字,预计阅读时间需要3分钟。

如何成功将qrencode源码编译成动态链接库的实践经历?

在Windows环境下使用VS2022建立动态库工程,下载源码后,需包含以下步骤:

1. 下载源码:访问[https://github.com/fukuchi/libqrencode](https://github.com/fukuchi/libqrencode)。

2.解压源码包,进入项目目录。

3.在项目目录下,创建一个Visual Studio 2022项目。

4.将`test`、`use`文件夹和`CMakeLists.txt`文件添加到项目中。

5.在项目中配置CMake,确保所有必要文件和路径正确。

如何成功将qrencode源码编译成动态链接库的实践经历?

在网上搜二维码库:qrencode,源码下载:github.com/fukuchi/libqrencode 我的是windows环境,IDE是vs2022。 建立一个动态库的空工程。 把源码下载下来,其中test文件夹 use文件夹 和cmake文件夹我没有使用,直接把根目录的所有.h和.c复制,然后在vs的项目里粘贴。 因为使用了png.h 头文件,所以nuget搜索:libpng,注意看标记一栏的编译器支持版本,v120,v140,vs2022使用的是更高版本的,所以需要visualstudio installer 修改 添加 v140或v120版本,否则贬义时会报link错误,比如: ”错误 LNK2019 无法解析的外部符号 png_create_write_struct,函数 writePNG 中引用了该符号“ 因为代码里用了很多windows环境下过时的方法,会报错 c4996。 错误 C4996 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS 需要在项目里设置,右键项目,选择属性,c/c++一栏 选择高级,找到右侧的特定警告,输入4996添加。 除了这个,还需要在预编译头里,不适用预编译头。 做了这些工作,这个项目大概率是能1成功,0error,0warnning的。 然后就是写dll的接口了,再写接口前,先了解以下这个库,这个库的主要对象是QRcode, 主要方法是: QRcode *QRcode_encodeString(const char *string, int version, QRecLevel level, QRencodeMode hint, int casesensitive) 输出图片文件:static int writePNG(const QRcode *qrcode, const char *outfile, enum imageType type) 我就写了两个接口,一个是供c++环境使用的生成图片的,一个是供c#使用,可以自定义二维码图片尺寸的。 因为这个是库是作者用c语言写的,所以,导出的接口可以这样写: __declspec(dllexport) int Method(int arg,const char*fileName) 重点在这里:__declspec(dllexport)。 到这里,就能使用这个库了。不过我生成的二维码的大小是固定的。自己不太了解这个库的具体内容,只是简单尝试了以下,作为练习,并没有运用到工作中去。可能还有很多坑,自己没遇见。 c++调用方如何使用这个库,详情: www.cnblogs.com/HelloQLQ/p/16364842.html c#调用方如何调用这个库,详情: www.cnblogs.com/HelloQLQ/p/16364888.html