wxleasyland@sina.com

2020.5

 

用WIN7 X64,VS2012。

 

参考了https://blog.csdn.net/zxxSsdsd/article/details/9454629

 

一、依赖库:

freetype

简要:在“主目录”\builds\windows\vc2010 ,VS2012用这个目录的sln,选成release static方式, 这时就是变成生成lib,“多线程/MT”,生成freetype.lib。

 

libjpeg

简要:按install.txt说的,运行“VS2012 开发人员命令提示”,进入lijpeg目录,运行:NMAKE /f makefile.vs setup-v16,  打开生成的jpeg.sln,把“平台工具集”改成visual studio 2012(v110),按默认release、静态库lib、“MT”生成jpeg.lib。

 

libtiff

简要:从GnuWin32直接下Developer files,就是lib库文件,直接用头文件和libtiff.lib。

 

libpng

简要:vs2012打开“主目录”/projects/vstudio/vstudio.sln,里面已经有zlib了,可以用这里的zlib。选成“release library”,即按静态库方式生成libpng16.lib,“/MT”。 如果出错“警告被视为错误”,则属性->配置属性->c/c++->常规,将“警告视为错误”的选项改为“否”。

 

zlib 

简要:运行“VS2012 开发人员命令提示”,进入zlib-1.2.11目录下,运行:nmake -f win32\Makefile.msc LDFLAGS="-release",即可生成文件,静态库是zlib.lib、zlib.pdb。  不用命令行的话,也可以从contrib/vstudio/目录里选相应版本用VS打开进行编译。readme里有说明。

 

cppunit (optional)     不管

fontconfig (Linux/Unix only)     //windows可不管

Lua 5.1 (optional, only for podofoimpose Lua imposition plans)   //windows可不管

 

然后做podofo 0.9.6库。

podofo文件是按linux的回车,回车格式与windwos不一样!  没关系,可以不用修正过来。

 

podofo基本每个目录都有一个cmake的脚本文件CMakeLists.txt。

主目录的CMakeLists.txt,对应的是整个工程的所有项目。可以把所有子目录的项目全部转换出来。

子目录的CMakeLists.txt,对应的就是当前目录项目及子目录的项目。

只能对主目录的CMakeLists.txt进行转换,不能对子目录的CMakeLists.txt进行转换,否则cmake提示出错。

 

 

如果只对src\CMakeLists.txt进行转换,则会提示:

CMake Error at CMakeLists.txt:4 (MESSAGE): Run cmake on the CMakeLists.txt in the project root, not the one in the 'src' directory.  You will need to delete CMakeCache.txt from the current directory.

 

 

 

二、使用cmake gui界面版

(1)cmake界面版的使用方法

where is the source code目录:就是 CMakeLists.txt 所在的目录,可以把CMakeLists.txt拖进来,则这个目录就自动填上去了。

 

where to build the binaries目录:就是generate生成的项目文件会放在这里,我们要自己建一个空文件夹,再把目录指定到这个空文件夹。

 

下面的NAME、VALUE那里就是“参数栏”:  “参数”这里是叫entry,可以自已add entry、remove entry。

 

一般选中“Grouped”框、“Advanced”框

“Grouped”框 是把相同前缀的参数 放在一组。比如C_A、C_B就属于同一组,就会显示在一个组C里,这样容易看。

“Advanced”框 是显示高级参数,不选它,则一些高级参数不会显示出来。

 

configure:可以配置按哪个版本的VS来生成,然后就会自动开始配置,配置成功会显示“Configuring done”。

 

generate:就是转换生成出项目文件。在配置成功后,点这个,就可以生成项目文件了。

 

cmake 在配置时,会把找到的参数显示到“参数栏”里。我们可以对参数进行修改,或打勾等

在遇到错误,就会停止,一般这时是参数值错误,比如ZLIB_INCLUDE_DIR参数没有值,显示NOTFOUND,我们把值填上去后,再点“configure”或“generate”,就会继续。直到配置完成,显示“Configuring done”。

 

点generate进行生成,直到下面显示框显示“Generating done”,这样就成功了,目标文件夹里有生成的项目文件了。

 

我是这样设置参数:

 

FREETYPE_INCLUDE_DIR_FT2BUILD 为 E:/developer/freetype
FREETYPE_INCLUDE_DIR_FTHEADER 为 E:/developer/freetype
FREETYPE_LIBRARY_DEBUG 为 E:/developer/freetype
FREETYPE_LIBRARY_RELEASE 为 E:/developer/freetype

LIBJPEG_INCLUDE_DIR 为 E:/developer/libjpeg
LIBJPEG_LIBRARY_DEBUG 为 E:/developer/libjpeg
LIBJPEG_LIBRARY_RELEASE 为 E:/developer/libjpeg

PNG_PNG_INCLUDE_DIR 为 E:/developer/libpng
PNG_LIBRARY_DEBUG 为 E:/developer/libpng
PNG_LIBRARY_RELEASE  为 E:/developer/libpng

TIFF_INCLUDE_DIR 为 E:/developer/libtiff
TIFF_LIBRARY_DEBUG 为 E:/developer/libtiff
TIFF_LIBRARY_RELEASE 为 E:/developer/libtiff

ZLIB_INCLUDE_DIR 为 E:/developer/zlib
ZLIB_LIBRARY_DEBUG 为 E:/developer/zlib
ZLIB_LIBRARY_RELEASE 为 E:/developer/zlib

 

运行提示如下:

The C compiler identification is MSVC 17.0.61030.0

The CXX compiler identification is MSVC 17.0.61030.0

Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe

Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe -- works

Detecting C compiler ABI info

Detecting C compiler ABI info - done

Detecting C compile features

Detecting C compile features - done

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe -- works

Detecting CXX compiler ABI info

Detecting CXX compiler ABI info - done

Detecting CXX compile features

Detecting CXX compile features - done

WANT_LIB64 unset; assuming normal library directory names

Will install libraries to C:/Program Files (x86)/PoDoFo/lib

Found zlib headers in E:/developer/zlib, library at optimized;E:/developer/zlib;debug;E:/developer/zlib

 

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

 

Could NOT find LIBCRYPTO (missing: LIBCRYPTO_LIBRARY LIBCRYPTO_INCLUDE_DIR)

OpenSSL's libCrypto not found. Encryption support will be disabled

 

Could NOT find LIBIDN (missing: LIBIDN_LIBRARY LIBIDN_INCLUDE_DIR)

Libidn not found. AES-256 Encryption support will be disabled

 

Found LIBJPEG: optimized;E:/developer/libjpeg;debug;E:/developer/libjpeg 

Found libjpeg headers in E:/developer/libjpeg, library at optimized;E:/developer/libjpeg;debug;E:/developer/libjpeg

Found TIFF: optimized;E:/developer/libtiff;debug;E:/developer/libtiff 

Found libtiff headers in E:/developer/libtiff, library at optimized;E:/developer/libtiff;debug;E:/developer/libtiff

Found PNG: E:/developer/libpng (found version "1.6.37")

Found LibPng headers in E:/developer/libpng;E:/developer/zlib, library at E:/developer/libpng;optimized;E:/developer/zlib;debug;E:/developer/zlib

Could NOT find UNISTRING (missing: UNISTRING_INCLUDE_DIR UNISTRING_LIBRARY)

LibUnistring not found. Unistring support will be disabled

Ensure you cppunit installed version is at least 1.12.0

Cppunit not found. No unit tests will be built.

OpenSSL: Could not find the debug and release version of openssl

OpenSSL: Disabling OpenSSL

Found freetype library at optimized;E:/developer/freetype;debug;E:/developer/freetype, headers E:/developer/freetype

CMake Warning (dev) at cmake/modules/FindLIBSTLPORT.cmake:12 (SET):

  implicitly converting 'BOOLEAN' to 'STRING' type.

Call Stack (most recent call first):

  CMakeLists.txt:404 (FIND_PACKAGE)

This warning is for project developers.  Use -Wno-dev to suppress it.

 

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Could NOT find Fontconfig (missing: FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR)

Could NOT find Lua50 (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

Could NOT find Lua (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

Lua not found - PoDoFoImpose and PoDoFoColor will be built without Lua support

Building multithreaded version of PoDoFo.

Looking for pthread.h

Looking for pthread.h - not found

Found Threads: TRUE 

Building shared PoDoFo library

Pkg-config not found. No pkg-config file will be created.

Configuring done

 

WARNING: Target "podofo_shared" requests linking to directory "E:/developer/zlib".  Targets may link only to libraries.  CMake is dropping the item.

WARNING: Target "podofo_shared" requests linking to directory "E:/developer/libjpeg".  Targets may link only to libraries.  CMake is dropping the item.

WARNING: Target "podofo_shared" requests linking to directory "E:/developer/freetype".  Targets may link only to libraries.  CMake is dropping the item.

WARNING: Target "podofo_shared" requests linking to directory "E:/developer/libpng".  Targets may link only to libraries.  CMake is dropping the item.

WARNING: Target "podofo_shared" requests linking to directory "E:/developer/libtiff".  Targets may link only to libraries.  CMake is dropping the item.

 

。。。。。。

 

Generating done

 

一大堆警告,不知所云,但还是成功了。

 

这样生成项目解决方案PoDoFo.sln,打开后看,是全部的项目都集中在一起了(podofo项目、例子项目等),34个项目,非常多。大部分例子项目都生成出来了,只有少数几个没有生成出来。

podofo_shared就是podofo库dll项目,其它的都是例子项目。

 

 

(2)VS打开后的编译问题:

 

改成release方式,编译整个解决方案。

 

CreationTest项目,有一个文件提示要保存成unicode才行,并且说字符串内有换行符:

podofo-0.9.6\test\CreationTest\CreationTest.cpp : warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

podofo-0.9.6\test\CreationTest\CreationTest.cpp(52): error C2001: 常量中有换行符

看了一下,是一个日语字串:

PdfString sJap(reinterpret_cast<const pdf_utf8*>("「PoDoFo」は今から日本語も話せます。"));

WINHEX看了一下,原文件内容是按UTF8编码的,文件头没有带UTF8 BOM。

把文件另存成UTF8,不行,一样。

另存成UNICODE(代码页1200),OK,可以了。

 

 

podofo是“podofo_shared”项目,是动态库!是生成podofo.dll文件。

然后,podofo.dll没有生成,提示链接时找不到lib文件,因为链接器属性\输入\附加依赖项里,没有写上相关依赖库的lib,自己加上,再编译,就成功了。(这就是生成时出现警告的原因

 

 

(3)问题解决

其实上面在cmake中输入的参数不太对,ZLIB_INCLUDE_DIR参数是一个PATH类型,值是一个目录路径。

而ZLIB_LIBRARY_DEBUG、ZLIB_LIBRARY_RELEASE 参数是一个FILEPATH类型,值是一个文件的全路径,比如E:/developer/zlib/zlib.lib。

这样才不会出现上面的链接找不到lib的问题。

如果输入的只是一个路径,则就会出现上面的cmake警告,并且VS编译链接时找不到lib。

 

 

下面再用cmake命令行试试。

 

 

 

三、使用cmake命令行

 

(1)用命令行cmake:

cmake命令会自动找到Visual Studio 11 2012,可以不指定VS版本。

 

同样,不能单独对子目录里的CMakeLists.txt进行转换,否则提示出错。

 

在主目录下建一个wwwww目录,cmd进入这个目录,再运行“cmake ..”

 

CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):

  Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)

Call Stack (most recent call first):

  C:/Program Files (x86)/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)

  cmake/modules/FindZLIB.cmake:47 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)

  CMakeLists.txt:315 (FIND_PACKAGE)

 

 

用findstr命令,发现

cmake\modules\FindFREETYPE.cmake

cmake\modules\FindLIBCRYPTO.cmake

cmake\modules\FindLIBIDN.cmake

cmake\modules\FindLIBJPEG.cmake

cmake\modules\FindTIFF.cmake

cmake\modules\FindZLIB.cmake

这些文件里含有“_LIBRARY_NAMES字串。这些文件是给cmake用来查找各个依赖库的。

 

另外,居然没有png库的相关文件,png库不是必须的?但运行cmake界面版时是有的,而且readme里说的PODOFO的依赖图里有,奇怪了。后面发现cmake会自动查找png库的。

 

 

我把依赖库的.h和.lib文件放在各个插件的同一个目录,比如e:\developer\XXX。

在podofo主目录下建一个空文件夹,cmd进入这个目录。

再按readme.html中的说法,我做了修改,采用以下命令:

del cmakecache.txt

set FTDIR=e:\developer\freetype

set JPEGDIR=e:\developer\libjpeg

set PNGDIR=e:\developer\libpng

set TIFFDIR=e:\developer\libtiff

set ZLIBDIR=e:\developer\zlib

cmake  ..  -DCMAKE_INCLUDE_PATH="%FTDIR%;%JPEGDIR%;%PNGDIR%;%TIFFDIR%;%ZLIBDIR%"  -DCMAKE_LIBRARY_PATH="%FTDIR%;%JPEGDIR%;%PNGDIR%;%TIFFDIR%;%ZLIBDIR%"  -DPODOFO_BUILD_SHARED:BOOL=FALSE  -DFREETYPE_LIBRARY_NAMES=freetype  -DLIBJPEG_LIBRARY_NAMES=jpeg  -DTIFF_LIBRARY_NAMES=libtiff  -DZLIB_LIBRARY_NAMES=zlib

 

..  表示cmakelists.txt文件是在父目录中。

 

-D 指定的参数 就是 等于 “cmake界面版” 里的entry

 

CMAKE_INCLUDE_PATH、CMAKE_LIBRARY_PATH 参数指定了cmake公共的包含目录、库目录,这样查找模块在查找时,就会自动找到各个依赖库的包含文件、库文件!

 

PODOFO_BUILD_SHARED:BOOL=FALSE  使得编译出来是静态库lib,不是dll。

 

其它用-D来指定库名称,我的lib文件各自名称是freetype.lib,jpeg.lib,libtiff.lib,zlib.lib。

 

 

运行结果如下:

-- Building for: Visual Studio 11 2012      --自动会找到VS2012

-- The C compiler identification is MSVC 17.0.61030.0

-- The CXX compiler identification is MSVC 17.0.61030.0

-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe

-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe -- works

-- Detecting C compiler ABI info

-- Detecting C compiler ABI info - done

-- Detecting C compile features

-- Detecting C compile features - done

-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe

-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe -- works

-- Detecting CXX compiler ABI info

-- Detecting CXX compiler ABI info - done

-- Detecting CXX compile features

-- Detecting CXX compile features - done

WANT_LIB64 unset; assuming normal library directory names Will install libraries to C:/Program Files (x86)/PoDoFo/lib

-- Looking for strings.h

-- Looking for strings.h - not found

-- Looking for arpa/inet.h

-- Looking for arpa/inet.h - not found

-- Looking for winsock2.h

-- Looking for winsock2.h - found

-- Looking for mem.h

-- Looking for mem.h - not found

-- Looking for ctype.h

-- Looking for ctype.h - found

-- Looking for sys/types.h

-- Looking for sys/types.h - found

-- Looking for stdint.h

-- Looking for stdint.h - found

-- Looking for BaseTsd.h

-- Looking for BaseTsd.h - found

-- Looking for sys/types.h

-- Looking for sys/types.h - found

-- Looking for stdint.h

-- Looking for stdint.h - found

-- Looking for stddef.h

-- Looking for stddef.h - found

-- Check size of long int

-- Check size of long int - done

-- Check size of int64_t

-- Check size of int64_t - done

-- Check if the system is big endian

-- Searching 16 bit integer

-- Check size of unsigned short

-- Check size of unsigned short - done

-- Using unsigned short

-- Check if the system is big endian - little endian

 

-- Found ZLIB: E:/developer/zlib/zlib.lib

Found zlib headers in E:/developer/libpng, library at E:/developer/zlib/zlib.lib

 

-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

-- Could NOT find LIBCRYPTO (missing: LIBCRYPTO_LIBRARY LIBCRYPTO_INCLUDE_DIR)

OpenSSL's libCrypto not found. Encryption support will be disabled

 

-- Could NOT find LIBIDN (missing: LIBIDN_LIBRARY LIBIDN_INCLUDE_DIR)

Libidn not found. AES-256 Encryption support will be disabled

 

-- Found LIBJPEG: E:/developer/libjpeg/jpeg.lib

Found libjpeg headers in E:/developer/libjpeg, library at E:/developer/libjpeg/jpeg.lib

 

-- Found TIFF: E:/developer/libtiff/libtiff.lib

Found libtiff headers in E:/developer/libtiff, library at E:/developer/libtiff/libtiff.lib

 

-- Found ZLIB: E:/developer/zlib/zlib.lib (found version "1.2.11")

 

-- Found PNG: E:/developer/libpng/libpng16.lib (found version "1.6.37")

Found LibPng headers in E:/developer/libpng;E:/developer/libpng, library at E:/developer/libpng/libpng16.lib;E:/developer/zlib/zlib.lib

--会自动找到PNG的库!说明还是需要png库,只要给出目录就行!

 

-- Could NOT find UNISTRING (missing: UNISTRING_INCLUDE_DIR UNISTRING_LIBRARY)

LibUnistring not found. Unistring support will be disabled

 

-- Ensure you cppunit installed version is at least 1.12.0

Cppunit not found. No unit tests will be built.

 

OpenSSL: Could not find the debug and release version of openssl

OpenSSL: Disabling OpenSSL

 

Found freetype library at E:/developer/freetype/freetype.lib, headers E:/developer/freetype

 

CMake Warning (dev) at cmake/modules/FindLIBSTLPORT.cmake:12 (SET):

  implicitly converting 'BOOLEAN' to 'STRING' type.

Call Stack (most recent call first):

  CMakeLists.txt:404 (FIND_PACKAGE)

This warning is for project developers.  Use -Wno-dev to suppress it.

 

-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

-- Could NOT find Fontconfig (missing: FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR)

-- Could NOT find Lua50 (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

-- Could NOT find Lua (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

Lua not found - PoDoFoImpose and PoDoFoColor will be built without Lua support

 

Building multithreaded version of PoDoFo.

-- Looking for pthread.h

-- Looking for pthread.h - not found

-- Found Threads: TRUE

 

Building static PoDoFo library

-- Configuring done

-- Generating done

-- Build files have been written to: F:/MYXPfold/myDESK/PODOFO可读写PDF的库/podofo-0.9.6/wwwww

 

成功!

 

 

(2)VS2012打开podofo.sln:

改成release方式。

 

podofo是“podofo_static”项目,是静态库,是生成podofo.lib!编译后,有src\Release\podofo.lib文件!

 

例子项目 比如helloworld项目里,链接器属性\输入\附加依赖项里,有:

podofo.lib;E:\developer\zlib\zlib.lib;E:\developer\libjpeg\jpeg.lib; E:\developer\freetype\freetype.lib;E:\developer\libpng\libpng16.lib; E:\developer\libtiff\libtiff.lib;

所以会把lib链接进来。 这里已经指定路径名了,所以在VC++目录属性中就不用加上目录路径。

 

同样,CreationTest.cpp文件有编码问题。

 

还有一个失败项目:WatermarkTest, 是因为podofo-0.9.6/test/TokenizerTest/objects这个文件夹不存在,属于源库包就有问题,那就不管这个项目了。 

 

成功!

 

 

 

(3)cmake查找png库的原理

podofo主目录的cmakelists.txt中,有:

FIND_PACKAGE(ZLIB REQUIRED)

FIND_PACKAGE(LIBJPEG)

FIND_PACKAGE(TIFF)

FIND_PACKAGE(Png)

FIND_PACKAGE(FREETYPE REQUIRED)

这些命令是让cmake从cmake\modules下去找相应模块文件去执行:

FindZLIB.cmake

FindLIBJPEG.cmake

FindTIFF.cmake

FindFREETYPE.cmake

但目录里面没有FindPng.cmake这个文件,那png库是怎么找到的?

 

后来知道了,在cmake自己的安装程序中,有FindPNG.cmake这个文件:

"C:\Program Files (x86)\CMake\share\cmake-3.15\Modules\FindPNG.cmake"

所以podofo中就没有带这个模块文件了,采用cmake自己的就可以。

 

 

(4)cmake界面版 按 命令行参数 去生成

人工输入entry为:

CMAKE_INCLUDE_PATH为e:\developer\freetype;e:\developer\libjpeg;e:\developer\libpng;e:\developer\libtiff;e:\developer\zlib

CMAKE_LIBRARY_PATH为e:\developer\freetype;e:\developer\libjpeg;e:\developer\libpng;e:\developer\libtiff;e:\developer\zlib

PODOFO_BUILD_SHARED为BOOL型,FALSE 

FREETYPE_LIBRARY_NAMES为freetype 

LIBJPEG_LIBRARY_NAMES为jpeg 

TIFF_LIBRARY_NAMES为libtiff 

ZLIB_LIBRARY_NAMES为zlib

 

cmake运行提示:

The C compiler identification is MSVC 17.0.61030.0

The CXX compiler identification is MSVC 17.0.61030.0

Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe

Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe -- works

Detecting C compiler ABI info

Detecting C compiler ABI info - done

Detecting C compile features

Detecting C compile features - done

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe -- works

Detecting CXX compiler ABI info

Detecting CXX compiler ABI info - done

Detecting CXX compile features

Detecting CXX compile features - done

WANT_LIB64 unset; assuming normal library directory names

Will install libraries to C:/Program Files (x86)/PoDoFo/lib

Looking for strings.h

Looking for strings.h - not found

Looking for arpa/inet.h

Looking for arpa/inet.h - not found

Looking for winsock2.h

Looking for winsock2.h - found

Looking for mem.h

Looking for mem.h - not found

Looking for ctype.h

Looking for ctype.h - found

Looking for sys/types.h

Looking for sys/types.h - found

Looking for stdint.h

Looking for stdint.h - found

Looking for BaseTsd.h

Looking for BaseTsd.h - found

Looking for sys/types.h

Looking for sys/types.h - found

Looking for stdint.h

Looking for stdint.h - found

Looking for stddef.h

Looking for stddef.h - found

Check size of long int

Check size of long int - done

Check size of int64_t

Check size of int64_t - done

Check if the system is big endian

Searching 16 bit integer

Check size of unsigned short

Check size of unsigned short - done

Using unsigned short

Check if the system is big endian - little endian

Found ZLIB: E:/developer/zlib/zlib.lib 

Found zlib headers in E:/developer/libpng, library at E:/developer/zlib/zlib.lib

 

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Could NOT find LIBCRYPTO (missing: LIBCRYPTO_LIBRARY LIBCRYPTO_INCLUDE_DIR)

OpenSSL's libCrypto not found. Encryption support will be disabled

 

Could NOT find LIBIDN (missing: LIBIDN_LIBRARY LIBIDN_INCLUDE_DIR)

Libidn not found. AES-256 Encryption support will be disabled

 

Found LIBJPEG: E:/developer/libjpeg/jpeg.lib 

Found libjpeg headers in E:/developer/libjpeg, library at E:/developer/libjpeg/jpeg.lib

Found TIFF: E:/developer/libtiff/libtiff.lib 

Found libtiff headers in E:/developer/libtiff, library at E:/developer/libtiff/libtiff.lib

Found ZLIB: E:/developer/zlib/zlib.lib (found version "1.2.11")

Found PNG: E:/developer/libpng/libpng16.lib (found version "1.6.37")

Found LibPng headers in E:/developer/libpng;E:/developer/libpng, library at E:/developer/libpng/libpng16.lib;E:/developer/zlib/zlib.lib

Could NOT find UNISTRING (missing: UNISTRING_INCLUDE_DIR UNISTRING_LIBRARY)

LibUnistring not found. Unistring support will be disabled

Ensure you cppunit installed version is at least 1.12.0

Cppunit not found. No unit tests will be built.

 

OpenSSL: Could not find the debug and release version of openssl

OpenSSL: Disabling OpenSSL

 

Found freetype library at E:/developer/freetype/freetype.lib, headers E:/developer/freetype

CMake Warning (dev) at cmake/modules/FindLIBSTLPORT.cmake:12 (SET):

  implicitly converting 'BOOLEAN' to 'STRING' type.

Call Stack (most recent call first):

  CMakeLists.txt:404 (FIND_PACKAGE)

This warning is for project developers.  Use -Wno-dev to suppress it.

 

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Could NOT find Fontconfig (missing: FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR)

Could NOT find Lua50 (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

Could NOT find Lua (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

Lua not found - PoDoFoImpose and PoDoFoColor will be built without Lua support

Building multithreaded version of PoDoFo.

Looking for pthread.h

Looking for pthread.h - not found

Found Threads: TRUE 

Building static PoDoFo library

Configuring done

Generating done

 

成功,就是和命令行效果一样的。

 

 

 

 

 

四、使用/MT、/MD进行编译的结果

 

  1. PODOFO.dll项目(podofo_shared)  ,/MD

成功,提示:

2>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

 

后面改成用静态库lib,这个动态库dll就不用了。

 

  1. PODOFO.lib项目(podofo_static)  ,/MT

成功有17MB,提示:

2>  正在生成代码...

2>  podofo_static.vcxproj -> F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\wwwww\src\Release\podofo.lib

 

没有进行link,所以没有链接错误。

改名成podofo_mt.lib,放在E:\developer\podofo\。

 

lib文件里含有:

/FAILIFMISMATCH:"_MSC_VER=1700" /FAILIFMISMATCH:"_ITERATOR_DEBUG_LEVEL=0" /FAILIFMISMATCH:"RuntimeLibrary=MT_StaticRelease" /DEFAULTLIB:"libcpmt"

还含有:

/DEFAULTLIB:"LIBCMT" /DEFAULTLIB:"OLDNAMES"

 

 

  1. PODOFO.lib项目(podofo_static)  ,/MD

成功有14MB,提示:

2>  正在生成代码...

2>  podofo_static.vcxproj -> F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\wwwww\src\Release\podofo.lib

 

没有进行link,所以没有链接错误。

改名成podofo_md.lib,放在E:\developer\podofo\。

 

lib文件里含有:

/FAILIFMISMATCH:"_MSC_VER=1700" /FAILIFMISMATCH:"_ITERATOR_DEBUG_LEVEL=0" /FAILIFMISMATCH:"RuntimeLibrary=MD_DynamicRelease" /DEFAULTLIB:"msvcprt"

还含有:

/DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES"

 

 

  1. HELLOWORLD.exe项目   ,/MD   (项目依赖项是podofo)

(PODOFO.lib  ,/MD)

 

成功:

2>  正在生成代码...

2>  podofo_static.vcxproj -> F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\wwwww\src\Release\podofo.lib

3>------ 已启动全部重新生成: 项目: helloworld, 配置: Release Win32 ------

3>  Building Custom Rule F:/MYXPfold/myDESK/PODOFO可读写PDF的库/podofo-0.9.6/examples/helloworld/CMakeLists.txt

3>  helloworld.cpp

3>  jpeg.lib(jerror.obj) : 找到 MSIL .netmodule 或使用 /GL 编译的模块;正在使用 /LTCG 重新启动链接;将 /LTCG 添加到链接命令行以改进链接器性能

3>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

3>  正在生成代码

3>  已完成代码的生成

3>  helloworld.vcxproj -> F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\wwwww\examples\helloworld\Release\helloworld.exe

 

 

  1. HELLOWORLD.exe项目   ,/MD    (项目依赖项是podofo)

(PODOFO.lib  ,/MT

 

失败,提示:

2>  正在生成代码...

2>  podofo_static.vcxproj -> F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\wwwww\src\Release\podofo.lib

 

3>------ 已启动全部重新生成: 项目: helloworld, 配置: Release Win32 ------

3>  Building Custom Rule F:/MYXPfold/myDESK/PODOFO可读写PDF的库/podofo-0.9.6/examples/helloworld/CMakeLists.txt

3>  helloworld.cpp

3>podofo.lib(PdfError.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(helloworld.obj 中)

。。。N多个

3>LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

3>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

 

3>F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\wwwww\examples\helloworld\Release\helloworld.exe : fatal error LNK1319: 检测到 82 个不匹配项

 

所以PODOFO.lib项目 和 HELLOWORLD.exe项目 的编译开关/MD或/MT需要一致。

 

 

 

  1. HELLOWORLD.exe项目   ,/MD  

删掉podofo项目

链接器输入中指定E:\developer\podofo\podofo_mt.lib

 

失败,提示:

2>------ 已启动全部重新生成: 项目: helloworld, 配置: Release Win32 ------

2>  Building Custom Rule F:/MYXPfold/myDESK/PODOFO可读写PDF的库/podofo-0.9.6/examples/helloworld/CMakeLists.txt

2>  helloworld.cpp

2>podofo_mt.lib(PdfError.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(helloworld.obj 中)

。。。N多个

2>LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

2>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

2>F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\wwwww\examples\helloworld\Release\helloworld.exe : fatal error LNK1319: 检测到 82 个不匹配项

 

 

 

  1. HELLOWORLD.exe项目  ,/MD  

删掉podofo项目

链接器输入中指定E:\developer\podofo\podofo_md.lib

 

成功,提示:

2>  jpeg.lib(jerror.obj) : 找到 MSIL .netmodule 或使用 /GL 编译的模块;正在使用 /LTCG 重新启动链接;将 /LTCG 添加到链接命令行以改进链接器性能

2>LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

2>  正在生成代码

2>  已完成代码的生成

2>  helloworld.vcxproj -> F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\wwwww\examples\helloworld\Release\helloworld.exe

 

 

所以ELLOWORLD.exe项目 和 引用的podofo.lib  的编译开关/MD或/MT需要一致。

 

 

podofo.dll项目链接时,没有发生error LNK2038错误,是因为zlib.lib等依赖库没有触发“/FAILIFMISMATCH:"RuntimeLibrary=”字串,所以不用强制匹配检查。

 

 

 

五、加入openSSL支持加密解密

 

发现podofoencrypt项目,EXE运行时,无法对PDF文件加密操作,提示错误:

Error: An error 50 ocurred during encrypting the pdf file.

PoDoFo encountered an error. Error: 50 ePdfError_NotCompiled

        Error Description: This feature was disabled during compile time.

        Callstack:

        #0 Error Source: F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6\src\base\PdfEncrypt.cpp:2179

            Information: PdfEncrypt::CreatePdfEncrypt:   Encryption support was disabled during compile time

 

就是PODOFO库在编译时,没有SSL库,故没有SSL功能。

 

 

1. 可以预先在CMakeLists.txt文件中,加入参数entry

 

cmake gui界面比较直观,还是继续采用界面版吧,但是每次都要输入entry参数,太麻烦。

 

为了方便cmake界面使用,不要每次都add entry,可以预先在CMakeLists.txt文件中,加入参数entry。比如按上面的参数,加在PROJECT(PoDoFo)后面

SET(CMAKE_INCLUDE_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

SET(CMAKE_LIBRARY_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

 

SET(PODOFO_BUILD_SHARED  FALSE  CACHE BOOL  "")

SET(FREETYPE_LIBRARY_NAMES  "freetype" CACHE STRING "")

SET(LIBJPEG_LIBRARY_NAMES  "jpeg" CACHE STRING "")

SET(TIFF_LIBRARY_NAMES  "libtiff" CACHE STRING "")

SET(ZLIB_LIBRARY_NAMES  "zlib" CACHE STRING "")

 

 

BOOL类型,值为OFF、FALSE、乱七八糟的值,均是FALSE,不打勾。

BOOL类型,值为ON、TRUE,均是TRUE,会打勾。

 

字串里面,\不是\,而是带格式解析,所以路径要用/,不能用\,否则出错,比如提示:

Invalid escape sequence \d

  Policy CMP0010 is not set: Bad variable reference syntax is an error.  Run

  "cmake --help-policy CMP0010" for policy details.  Use the cmake_policy

  command to set the policy and suppress this warning.

 

 

2. 加上openSSL1.1.1g支持

 

从slproweb.com下载openSSL的win版,下载Win32 OpenSSL v1.1.1g,文件比较大的那个(因为里面有VC调试文件,所以文件很大)。

 

VC版的lib在安装目录如C:/Program Files (x86)/OpenSSL-Win32/lib/VC下,有libcrypto32MD.lib、libssl32MD.lib等。

头文件包含目录在如C:/Program Files (x86)/OpenSSL-Win32/include,注意不用再加上openssl子目录

 

cmake\modules\FindOpenSSL.cmake,这个模块是查找openssl的,必须要同时找到debug和release版,才能通过。

cmake\modules\FindLIBCRYPTO.cmake,这个模块是查找libcrypto的。

 

 

CMakeLists.txt文件中,加入这些参数entry:

SET(CMAKE_INCLUDE_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib;C:/Program Files (x86)/OpenSSL-Win32/include" CACHE STRING "")

SET(CMAKE_LIBRARY_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

 

SET(PODOFO_BUILD_SHARED  FALSE CACHE BOOL  "")

SET(FREETYPE_LIBRARY_NAMES  "freetype" CACHE STRING "")

SET(LIBJPEG_LIBRARY_NAMES  "jpeg" CACHE STRING "")

SET(TIFF_LIBRARY_NAMES  "libtiff" CACHE STRING "")

SET(ZLIB_LIBRARY_NAMES  "zlib" CACHE STRING "")

 

SET(LIBCRYPTO_LIBRARY_DEBUG "C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libcrypto32MDd.lib" CACHE FILEPATH "")

SET(LIBCRYPTO_LIBRARY_RELEASE "C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libcrypto32MD.lib" CACHE FILEPATH "")

SET(SSL_EAY_DEBUG "C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libssl32MDd.lib" CACHE FILEPATH "")

SET(SSL_EAY_RELEASE "C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libssl32MD.lib" CACHE FILEPATH "")

 

cmake运行结果如下:

The C compiler identification is MSVC 17.0.61030.0

The CXX compiler identification is MSVC 17.0.61030.0

Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe

Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe -- works

Detecting C compiler ABI info

Detecting C compiler ABI info - done

Detecting C compile features

Detecting C compile features - done

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 11.0/VC/bin/cl.exe -- works

Detecting CXX compiler ABI info

Detecting CXX compiler ABI info - done

Detecting CXX compile features

Detecting CXX compile features - done

 

WANT_LIB64 unset; assuming normal library directory names

Will install libraries to C:/Program Files (x86)/PoDoFo/lib

 

Looking for strings.h

Looking for strings.h - not found

Looking for arpa/inet.h

Looking for arpa/inet.h - not found

Looking for winsock2.h

Looking for winsock2.h - found

Looking for mem.h

Looking for mem.h - not found

Looking for ctype.h

Looking for ctype.h - found

Looking for sys/types.h

Looking for sys/types.h - found

Looking for stdint.h

Looking for stdint.h - found

Looking for BaseTsd.h

Looking for BaseTsd.h - found

Looking for sys/types.h

Looking for sys/types.h - found

Looking for stdint.h

Looking for stdint.h - found

Looking for stddef.h

Looking for stddef.h - found

Check size of long int

Check size of long int - done

Check size of int64_t

Check size of int64_t - done

Check if the system is big endian

Searching 16 bit integer

Check size of unsigned short

Check size of unsigned short - done

Using unsigned short

Check if the system is big endian - little endian

Found ZLIB: E:/developer/zlib/zlib.lib

Found zlib headers in E:/developer/libpng, library at E:/developer/zlib/zlib.lib

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

 

Found LIBCRYPTO: optimized;C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libcrypto32MD.lib;debug;C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libcrypto32MDd.lib

Performing Test PODOFO_HAVE_OPENSSL_1_1

Performing Test PODOFO_HAVE_OPENSSL_1_1 - Success

Performing Test PODOFO_HAVE_OPENSSL_NO_RC4

Performing Test PODOFO_HAVE_OPENSSL_NO_RC4 - Failed

 

Found OpenSSL's libCrypto headers in C:/Program Files (x86)/OpenSSL-Win32/include, library at optimized;C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libcrypto32MD.lib;debug;C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libcrypto32MDd.lib

 

Could NOT find LIBIDN (missing: LIBIDN_LIBRARY LIBIDN_INCLUDE_DIR)

Libidn not found. AES-256 Encryption support will be disabled

 

Found LIBJPEG: E:/developer/libjpeg/jpeg.lib

Found libjpeg headers in E:/developer/libjpeg, library at E:/developer/libjpeg/jpeg.lib

Found TIFF: E:/developer/libtiff/libtiff.lib

Found libtiff headers in E:/developer/libtiff, library at E:/developer/libtiff/libtiff.lib

Found ZLIB: E:/developer/zlib/zlib.lib (found version "1.2.11")

Found PNG: E:/developer/libpng/libpng16.lib (found version "1.6.37")

Found LibPng headers in E:/developer/libpng;E:/developer/libpng, library at E:/developer/libpng/libpng16.lib;E:/developer/zlib/zlib.lib

Could NOT find UNISTRING (missing: UNISTRING_INCLUDE_DIR UNISTRING_LIBRARY)

LibUnistring not found. Unistring support will be disabled

Ensure you cppunit installed version is at least 1.12.0

Cppunit not found. No unit tests will be built.

Found OpenSSL: optimized;C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libssl32MD.lib;debug;C:/Program Files (x86)/OpenSSL-Win32/lib/VC/static/libssl32MDd.lib

Found freetype library at E:/developer/freetype/freetype.lib, headers E:/developer/freetype

CMake Warning (dev) at cmake/modules/FindLIBSTLPORT.cmake:12 (SET):

implicitly converting 'BOOLEAN' to 'STRING' type.

Call Stack (most recent call first):

CMakeLists.txt:422 (FIND_PACKAGE)

This warning is for project developers. Use -Wno-dev to suppress it.

 

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Could NOT find Fontconfig (missing: FONTCONFIG_LIBRARIES FONTCONFIG_INCLUDE_DIR)

Could NOT find Lua50 (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

Could NOT find Lua (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)

Lua not found - PoDoFoImpose and PoDoFoColor will be built without Lua support

 

Building multithreaded version of PoDoFo.

Looking for pthread.h

Looking for pthread.h - not found

Found Threads: TRUE

 

Building static PoDoFo library

Configuring done

 

Generating done

 

 

然后VS2012编译,出错,提示:

libcrypto32MD.lib  error LNK2001: 无法解析的外部符号 ___stdio_common_vsprintf

。。。。。。

 

完蛋,是不是因为openSSL按不同版本的VS编译的,不能直接用,要自己编译openSSL才行?

不是,改成采用 DLL版(非static) 的libssl32MDd.lib,libssl32MD.lib,就可以了!使用时把dll拷到同一目录一起就行。 

因为openssl的notes.win文件说如果是静态库版,链接时还要加什么什么lib。。。才行。麻烦,就用动态版dll吧。

 

改完再编译,成功。

 

 

3.  openSSL1.1.1g 不兼容的问题

 

编译出来的exe打开一个owner密码加密的文件,会显示“Error AES-decryption data”错误,比如podofotxtextract:

F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6(2)\wwwww\tools\podofotxtextract\Release>podofotxtextract owner.pdf

<</Encrypt 12 0 R/ID[<B7D174AD30959D3D3E2B6819B6561BFD><B7D174AD30959D3D3E2B6819

B6561BFD>]/Info 5 0 R/Root 1 0 R/Size 13>>

Error: An error 8 ocurred during processing the pdf file.

PoDoFo encountered an error. Error: 8 ePdfError_InternalLogic

        Error Description: An internal error occurred.

        Callstack:

        #0 Error Source: F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6(2)\

src\base\PdfParserObject.cpp:403

                Information: Unable to parse the stream for object 4 0 obj .

        #1 Error Source: F:\MYXPfold\myDESK\PODOFO可读写PDF的库\podofo-0.9.6(2)\

src\base\PdfEncrypt.cpp:411

                Information: Error AES-decryption data

 

 

原因是podofo 0.9.6和openSSL1.1.1g不太兼容

按https://sourceforge.net/p/podofo/mailman/message/36452108/说的,对PdfEncrypt.cpp进行修改,重新编译,OK了。  对于有owner加密的pdf,podofotxtextract可以正常打开了。

 

再试试改成采用openSSL1.0.2u版本的头文件和lib进行链接, OK,不需要修改PdfEncrypt.cpp,而且PATH路径中已经有其它软件的相同dll可以用,所以exe运行目录就不用把dll拷进来了。

 

所以必须使用openSSL1.0.2u才好!

 

 

4.  openSSL 和 LIBCRYPTO 是什么鬼?

 

FindOpenSSL.cmake,这个模块是查找openssl的,找的是ssleay32,这个其实是老版openSSL1.0.2u的文件。

FindLIBCRYPTO.cmake,这个模块是查找libcrypto的,这个是新版openSSL1.1.1g的?   老版openSSL没有crypto这个库。

二个模块同时存在,libcrypto不是属于openSSL的吗?这是怎么回事?

 

 

5. 试只用libcrypto 1.1.1g的LIBCRYPTO

参数如下:

SET(CMAKE_INCLUDE_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

SET(CMAKE_LIBRARY_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

 

SET(PODOFO_BUILD_SHARED  FALSE CACHE BOOL  "")

SET(FREETYPE_LIBRARY_NAMES  "freetype" CACHE STRING "")

SET(LIBJPEG_LIBRARY_NAMES  "jpeg" CACHE STRING "")

SET(TIFF_LIBRARY_NAMES  "libtiff" CACHE STRING "")

SET(ZLIB_LIBRARY_NAMES  "zlib" CACHE STRING "")

 

SET(LIBCRYPTO_INCLUDE_DIR "C:/Program Files (x86)/OpenSSL-Win32/include" CACHE PATH "")

SET(LIBCRYPTO_LIBRARY_DEBUG "C:/Program Files (x86)/OpenSSL-Win32/lib/VC/libcrypto32MDd.lib" CACHE FILEPATH "")

SET(LIBCRYPTO_LIBRARY_RELEASE "C:/Program Files (x86)/OpenSSL-Win32/lib/VC/libcrypto32MD.lib" CACHE FILEPATH "")

 

 

cmake运行如下:

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Performing Test PODOFO_HAVE_OPENSSL_1_1

Performing Test PODOFO_HAVE_OPENSSL_1_1 - Success

Performing Test PODOFO_HAVE_OPENSSL_NO_RC4

Performing Test PODOFO_HAVE_OPENSSL_NO_RC4 - Failed

Found OpenSSL's libCrypto headers in C:/Program Files (x86)/OpenSSL-Win32/include, library at optimized;C:/Program Files (x86)/OpenSSL-Win32/lib/VC/libcrypto32MD.lib;debug;C:/Program Files (x86)/OpenSSL-Win32/lib/VC/libcrypto32MDd.lib

 

Could NOT find LIBIDN (missing: LIBIDN_LIBRARY LIBIDN_INCLUDE_DIR)

Libidn not found. AES-256 Encryption support will be disabled

。。。

OpenSSL: Could not find the debug and release version of openssl

OpenSSL: Disabling OpenSSL

。。。

Configuring done

 

 

 

最终结果,podofoencrypt可以正常加密。但podofotxtextract运行时对于有owner加密的pdf,同样出错:

Information: Error AES-decryption data

 

把PdfEncrypt.cpp文件修改一下,OK,podofotxtextract解密正常了!

 

看来没有openSSL模块是可以的!

 

 

6. 试只用openSSL 1.0.2u的ssleay

参数如下:

SET(CMAKE_INCLUDE_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

SET(CMAKE_LIBRARY_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

 

SET(PODOFO_BUILD_SHARED  FALSE CACHE BOOL  "")

SET(FREETYPE_LIBRARY_NAMES  "freetype" CACHE STRING "")

SET(LIBJPEG_LIBRARY_NAMES  "jpeg" CACHE STRING "")

SET(TIFF_LIBRARY_NAMES  "libtiff" CACHE STRING "")

SET(ZLIB_LIBRARY_NAMES  "zlib" CACHE STRING "")

 

SET(OPENSSL_INCLUDE_DIR "C:/OpenSSL-Win32/include" CACHE PATH "")

SET(SSL_EAY_DEBUG "C:/OpenSSL-Win32/lib/VC/ssleay32MDd.lib" CACHE FILEPATH "")

SET(SSL_EAY_RELEASE "C:/OpenSSL-Win32/lib/VC/ssleay32MD.lib" CACHE FILEPATH "")

 

 

cmake运行如下:

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Could NOT find LIBCRYPTO (missing: LIBCRYPTO_LIBRARY LIBCRYPTO_INCLUDE_DIR)

OpenSSL's libCrypto not found.   Encryption support will be disabled

 

ould NOT find LIBIDN (missing: LIBIDN_LIBRARY LIBIDN_INCLUDE_DIR)

Libidn not found. AES-256 Encryption support will be disabled

。。。

Found OpenSSL: optimized;C:/OpenSSL-Win32/lib/VC/ssleay32MD.lib;debug;C:/OpenSSL-Win32/lib/VC/ssleay32MDd.lib

。。。

Configuring done

 

 

最终结果, podofotxtextract无法解密,出错:

     Information: PdfEncrypt::CreatePdfEncrypt: Encryption support was disabled during compile time

 

看来libcrypto模块是加密算法库,是必须要的。

 

 

 

7. 试采用openSSL 1.0.2u 的加密算法库libeay及ssleay

参数如下:

SET(CMAKE_INCLUDE_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

SET(CMAKE_LIBRARY_PATH  "e:/developer/freetype;e:/developer/libjpeg;e:/developer/libpng;e:/developer/libtiff;e:/developer/zlib" CACHE STRING "")

 

SET(PODOFO_BUILD_SHARED  FALSE CACHE BOOL  "")

SET(FREETYPE_LIBRARY_NAMES  "freetype" CACHE STRING "")

SET(LIBJPEG_LIBRARY_NAMES  "jpeg" CACHE STRING "")

SET(TIFF_LIBRARY_NAMES  "libtiff" CACHE STRING "")

SET(ZLIB_LIBRARY_NAMES  "zlib" CACHE STRING "")

 

SET(LIBCRYPTO_INCLUDE_DIR "C:/OpenSSL-Win32/include" CACHE PATH "")

SET(LIBCRYPTO_LIBRARY_DEBUG "C:/OpenSSL-Win32/lib/VC/libeay32MDd.lib" CACHE FILEPATH "")

SET(LIBCRYPTO_LIBRARY_RELEASE "C:/OpenSSL-Win32/lib/VC/libeay32MD.lib" CACHE FILEPATH "")

 

SET(OPENSSL_INCLUDE_DIR "C:/OpenSSL-Win32/include" CACHE PATH "")

SET(SSL_EAY_DEBUG "C:/OpenSSL-Win32/lib/VC/ssleay32MDd.lib" CACHE FILEPATH "")

SET(SSL_EAY_RELEASE "C:/OpenSSL-Win32/lib/VC/ssleay32MD.lib" CACHE FILEPATH "")

 

cmake运行如下:

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

Performing Test PODOFO_HAVE_OPENSSL_1_1

Performing Test PODOFO_HAVE_OPENSSL_1_1 - Failed

Performing Test PODOFO_HAVE_OPENSSL_NO_RC4

Performing Test PODOFO_HAVE_OPENSSL_NO_RC4 - Failed

Found OpenSSL's libCrypto headers in C:/OpenSSL-Win32/include, library at optimized;C:/OpenSSL-Win32/lib/VC/libeay32MD.lib;debug;C:/OpenSSL-Win32/lib/VC/libeay32MDd.lib

 

Could NOT find LIBIDN (missing: LIBIDN_LIBRARY LIBIDN_INCLUDE_DIR)

Libidn not found. AES-256 Encryption support will be disabled

。。。

Found OpenSSL: optimized;C:/OpenSSL-Win32/lib/VC/ssleay32MD.lib;debug;C:/OpenSSL-Win32/lib/VC/ssleay32MDd.lib

。。。

Configuring done

 

 

最终结果,podofoencrypt正常加密,podofotxtextract正常解密。

 

 

所以:

openSSL在1.0.x之前的版本中,文件为libeay32和ssleay32。在1.1.x之后的版本中,名字是libcrypto和libssl。

openSSL加密算法库=老版libeay32=新版libcrypto

openSSL SSL协议库=老版ssleay32=新版libssl

PODOFO实际的加密解密是采用openSSL中的加密算法库,在PODOFO里是叫LIBCRYPTO模块,需要有这个库才有加密解密的功能!和PdfEncrypt.cpp相关。

而PODOFO里所谓的openSSL模块只是对应于openSSL中的SSL协议库,用于实现SSL协议的,和加密解密无关。

 

 

 

六、总结一下:

所有依赖库采用静态库lib,/MD,release。

openSSL库采用动态库dll,/MD,release。版本采用1.0.2u。

podofo采用静态库lib,/MD,release。

podofo的exe项目,/MD,release。

根据 五、7的参数,进行podofo所有项目的cmake gui生成。

 

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Java Base64位加密和解密(包括其他加密参考)

    Java Base64位加密和解密(包括其他加密参考)链接https://blog.csdn.net/longguangfu8/article/details/78948213常用加密解密算法【RSA、AES、DES、MD5】介绍和使用https://blog.csdn.net/u013565368/article/details/53081195java 加密工具类(MD5、RSA、AES等加密方式https…...

    2024/4/24 10:00:04
  2. 教育行业的RPA应用:切实提高教务人员效率

    教育行业的RPA应用:切实提高教务人员效率眼下,RPA技术在教育行业中正发挥着至关重要的作用。RPA不仅可以降低成本、节省时间,还可以提高组织内部的效率和生产率,为组织提供更多附加值,释放更多的人力并完成其他关键任务。 教育行业必须要跟上科技的发展,甚至需要比科技的…...

    2024/4/24 10:00:03
  3. [NLP --- 25] Jieba 分词及关键词提取

    一. 分词1. 全模式import jiebaseg_list = jieba.cut("我来到北京清华大学", cut_all=True) print("Full Mode: " + "/ ".join(seg_list)) # 全模式2. 精确模式import jieba# seg_list = jieba.cut("我来到北京清华大学") seg_list =…...

    2024/4/24 10:00:02
  4. Linux基本操作

    第一部分: 1:linux基础简介 1:操作系统(Operating System) 1:操作系统是管理计算机硬件与软件资源的程序 2:典型操作系统 1:UNIX、LINUX、Mac OS X、Windows iOS、Android、MS-DOS 3:操作方式 1:命令行界面(Command Line Interface CLI) 1:用户通过键盘输入指令,计…...

    2024/4/24 10:00:04
  5. 13. 事件(1)

    事件:JavaScript 与HTML 之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码。这种在传统软件工程中被称为观察员模式的模型,支持页面的行为(JavaScript 代码)与页…...

    2024/4/21 4:08:44
  6. VMware安装Linux虚拟机之NAT模式网络配置图文详解

    VMware安装CentOS 6.8教程: ---传送门--> 可能是史上最详细的VMware安装Centos 6.8 minimal版图文教程 1.VMware中虚拟网络编辑器设置查看系统网关IP地址2.编辑虚拟机设置,添加网络适配器若没有网络适配器则添加即可3.Windows端网络配置4.虚拟机中网络配置[root@VOS3000 ~…...

    2024/4/15 5:55:44
  7. SpringBoot框架03(整合jdbc,mybatis、异常处理与单元测试、服务端数据校验(实体类和Controller其他参数校验)、Springboot热部署)

    一、Spring Boot 整合持久层技术 1.整合 JDBC spring boot整合jdbc: https://blog.csdn.net/weixin_44911308/article/details/106372179 2.整合mybatis spring boot 整合mybatis https://blog.csdn.net/weixin_44911308/article/details/106410424 二、SpringBoot 中异常处理…...

    2024/4/26 18:42:41
  8. 计算机视觉知识点-select search

    select serach 提出的时间是2013年,面对分割问题,这个方法得到了极高的recall, 13年的rcnn的区域选取方法就是用的这个方法. select serach 假设区域分割依赖*颜色*/*纹理*/*大小*/*形状*传统方法最好能做到过分割,就是不希望有一个区域有两个物体的情况,但是仅仅依靠颜色是不行…...

    2024/4/15 5:55:42
  9. [c++] constexpr用法

    constexpr 表示在编译期就求值。 -----------------------#define PI 3.14; constexpr int Inc(int i){return i+1; } int func(int i){return i+1; }constexpr int a = 10; constexpr int a = sizeof(int); constexpr int a = Inc(1); constexpr int a = PI;//上述a都是合法的…...

    2024/4/27 8:18:37
  10. 数据库系统上,慕课第五讲测验答案

    1单选(1分) 集合R与S的"差"表示为________ 得分/总分 A. B. C. 1.00/1.00 D. 2单选(1分) 集合R与S的笛卡尔积表示为________ 得分/总分 A. B. C. 1.00/1.00 D. 3单选(1分) 已知关系Student(S#,Sname,Sage,D#), Dept(D#, Dname,Dean),利用元组演算查询“计算机系所有学…...

    2024/4/24 10:00:01
  11. 计算机网络方向

    计算机网络 计算机网络运行原理 计算机网络搭建 计算机网络安全...

    2024/4/24 9:59:58
  12. TCP和SCTP协议的详解

    TCP 1、TCP:(Transmission Control Protocol)传输控制协议,是一种面向连接的可靠协议,工作在传输层。 2、面向连接:指的是在发送数据之前,双方都要保证链路的畅通,而且双方都是可以发送数据的。 3、TCP协议的作用:就是用来保证面向连接。 4、报文格式以及每个字段的作…...

    2024/4/24 10:00:00
  13. input按顺序上传文件

    this.ImgArr = [] this.ImgNum = 0/*** 上传文件* **/ fileUpload(event){let _this = this;_this.initCallBack(); //初始化腾讯云上传this.fileInfo = Array.from(event.target.files)this.fileInfo.forEach((val,index)=>{let file = new File([val], new Date().getTime…...

    2024/4/24 9:59:56
  14. RHEL6.5(RedHat6.5)双网卡绑定bonding配置文档

    1.最好先关闭NetworkManager,并将其设置为开机不启动,方法自行百度即可。 2.修改配置文件: 2.1 新建bond0文件: vim /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 ONBOOT=yes BOOTPROTO=static TYPE=Ethernet IPADDR=10.12.63.**(自己使用的IP地址) NETMASK=2…...

    2024/4/24 9:59:56
  15. 手把手教你使用 CompletableFuture

    背景在jdk5中,我们通过使用Future和Callable,可以在任务执行完毕后得到任务执行结果。可以使用isDone检测计算是否完成,使用cancle停止执行任务,使用阻塞方法get阻塞住调用线程来获取返回结果,使用阻塞方式获取执行结果,有违异步编程的初衷,而且Future的异常只能自己内部…...

    2024/4/24 9:59:54
  16. LQH入职第16天--创建账号

    1、创建账号 db := libs.GetMysqlDb("document")db.Begin()defer func() {if err != nil {db.Rollback()} else {db.Commit()}}()注释: (1)获取数据库的orm对象 (2)db.Begin()数据库开始 (3)db.Rollback()数据库回滚 (4)db.Commit()数据库提交 尝试从数据库…...

    2024/4/24 9:59:54
  17. 如何在Java代码中根据表中某个字段的查询返回该字段的数据和对应的表头

    今天接了一个需求,前端代码传一个入参,java后端返回该入参和该入参对应的表头的一部分,比如前段传入一个入参为$2GSiteId,我们返回$2GSiteId对应的数据和2G: ①定义一个So类,定义入参变量 private String $2GSiteId;public String get$2GSiteId() {return $2GSiteId; }pu…...

    2024/4/24 9:59:54
  18. 前端一键切换深色模式

    切换主题色传统方式是切换css包获取用less,sass定义变量控制主题色,复杂而且不易维护; 推荐一个插件 Darkmode.Js,一键切换深色模式使用方法引入Darkmode.Js,有两种方式:通过script标签直接引入;<script src="https://cdn.jsdelivr.net/npm/darkmode-js@1.5.5/l…...

    2024/4/24 4:39:12
  19. Express知识总结

    创建服务器 // 引入express const express = require(express) // 创建服务器 const app = express()// 监听80端口 app.listen(80, ()=>{console.log(服务器启动成功) })GET请求 // 引入express const express = require(express) // 创建服务器 const app = express()app.…...

    2024/4/24 9:59:50
  20. 链式前向星原理和遍历

    链式前向星 作用储存图中边的数据结构。举例 由如下图,需要将其关系进行储存储存关系如下:解释如下:head[i]表示以i为起点的第一条边int to; //这条边的终点 int w; //权值 int next; //兄弟边结构如下定义边的结构体 将边加入前向星中 遍历前向星边的结构体 stru…...

    2024/4/24 9:59:49

最新文章

  1. 小程序设计二

    八、使用背景图片&#xff08;background-image) 注意&#xff1a; url不能指定为本地地址可以将图片转化为base64方式使用。使用网络地址&#xff1a; background-image: url(https://img1.baidu.com); 考虑到版权问题&#xff0c;这里没有放具体路径。 使用base64格式指…...

    2024/4/28 0:22:37
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. Vue通过自定义指令实现元素平滑上升的动画效果(可以自定义动画时间、动画效果、动画速度等等)。

    1、演示 2、介绍 这个指令不是原生自带的&#xff0c;需要手动去书写&#xff0c;但是这辈子只需要编写这一次就好了&#xff0c;后边可以反复利用。 3、关键API IntersectionObserver IntersectionObserver 是一个用于监测元素是否进入或离开视口&#xff08;viewport&#x…...

    2024/4/27 19:01:10
  4. STM32实现软件SPI对W25Q64内存芯片实现读写操作

    先看看本次实验的成果吧&#xff1a; 这么简单的一个程序&#xff0c;我学习了一个星期左右&#xff0c;终于把所有的关节都打通了。所有代码都能什么都不看背着敲出来了。为了使自己的记忆更为清晰&#xff0c;特意总结了一个思维导图&#xff0c;感觉自己即便是日后忘记了看一…...

    2024/4/25 7:00:58
  5. 16个Python接单平台,做私活爽歪歪!(附100个爬虫源码)

    一、python爬虫是可以做副业的&#xff0c;主要是爬取网站、小程序或者APP的数据&#xff0c;对数据进行分析与处理&#xff0c;或者直接向客户提供爬虫程序与技术支持。 当初学会Python那会儿&#xff0c;有朋友来介绍我去接私活&#xff0c;是为一家公司做网站&#xff0c;那…...

    2024/4/26 8:46:13
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/26 21:56:58
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/26 22:01:59
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57