zl03jsj / mupdf

扩展mupdf 实现图像数字证书签名, 手写笔迹数字证书签名, 插入图片, 手写签名注释..改进手写批注,实现模拟真实手写的算法, annot自定义数据, annot插入,删除密码校验等功能...支持ios, windows, mac, linux, c++, java, android
GNU Affero General Public License v3.0
151 stars 55 forks source link

iOS平台编译的问题记录 #6

Open wonderffee opened 5 years ago

wonderffee commented 5 years ago

首先,mupdf Target 是不能编译通过的,好像是没有链接openssl库的原因。按说明应该是编译 MuPDF_openssl_sign Target 这个 在Xcode10或者Xcode9上连接真机iPhone XR编译失败,报错 error: redeclaration of C++ built-in type 'bool' ,报错位置在 include/mupdf/z/ntko_svr.h 对应代码

#ifndef bool
typedef signed char bool;
#define true  (signed char)1
#define false (signed char)0
#endif

但是用Xcode8+iPhone5c(iOS10.3.3系统)编译就完全没有问题,没有上述报错,不太明白原因。不过执行archive 时又有其它报错

zl03jsj commented 5 years ago

因为这个项目, 我开发的时候, 用的貌似还是xcode7.0, xcode版本不一样,对应每个版本的标准库也不一样, 所以可能你说的问题, 在这心的code版本上会有问题. @wonderffee

zl03jsj commented 5 years ago

@1036938520 你遇到的这个问题, 和xcode版本没没有关系, 是说的jbig2dec这个库没找到.

zl03jsj commented 5 years ago

@wonderffee 我突然想起来, 你编译的目标可能不对, /ntko_svr.h这个文件需要和一个服务器通讯的target才会用到. 就算你编译通过了, 没有服务器, 你也没办法使用这个功能.

1036938520 commented 5 years ago

@ 1036938520你遇到的这个问题,和xcode版本没没有关系,是说的jbig2dec这个库没找到。

查找了资料,但是这个库似乎是安卓端的,ios的应该怎么处理呢?

zl03jsj commented 5 years ago

@ 1036938520你遇到的这个问题,和xcode版本没没有关系,是说的jbig2dec这个库没找到。

查找了资料,但是这个库似乎是安卓端的,ios的应该怎么处理呢?

嗯...这个库应该是在thirdpartlib里面编译出来的.

zl03jsj commented 5 years ago

后面有空的时候, 我再维护一下吧, 这一段时间挺忙的.

1036938520 commented 5 years ago

@ 1036938520你遇到的这个问题,和xcode版本没没有关系,是说的jbig2dec这个库没找到。

查找了资料,但是这个库似乎是安卓端的,IOS的应该怎么处理呢?

嗯......这个库应该是在thirdpartlib里面编译出来的。

thirdparty里面jbig2dec是一个空的文件夹,这里能够优先处理么?

zl03jsj commented 5 years ago

@ 1036938520你遇到的这个问题,和xcode版本没没有关系,是说的jbig2dec这个库没找到。

查找了资料,但是这个库似乎是安卓端的,IOS的应该怎么处理呢?

嗯......这个库应该是在thirdpartlib里面编译出来的。

thirdparty里面jbig2dec是一个空的文件夹,这里能够优先处理么?

空的文件夹, 你应该检查一下子仓库(submodule)有没有checkout出来.

wonderffee commented 5 years ago

@1036938520 你这个问题在根目录用 git submodule update --init --recursive 就可以解决了,https://github.com/zl03jsj/mupdf/issues/3 里面早就说过了 @zl03jsj 建议在ReadMe里加上git clone --recursive https://github.com/zl03jsj/mupdf.git 避免这种小白问题

wonderffee commented 5 years ago

@wonderffee 我突然想起来, 你编译的目标可能不对, /ntko_svr.h这个文件需要和一个服务器通讯的target才会用到. 就算你编译通过了, 没有服务器, 你也没办法使用这个功能.

所以你的 iOS Demo 我们都是无法测试了,我测试了一下后面两个跟openssl 有关的 Target 好像都需要服务器连接测试,而不带openssl的Target又无法编译通过

zl03jsj commented 5 years ago

@wonderffee 我突然想起来, 你编译的目标可能不对, /ntko_svr.h这个文件需要和一个服务器通讯的target才会用到. 就算你编译通过了, 没有服务器, 你也没办法使用这个功能.

所以你的 iOS Demo 我们都是无法测试了,我测试了一下后面两个跟openssl 有关的 Target 好像都需要服务器连接测试,而不带openssl的Target又无法编译通过

targe名字里面带"xxxxx...Openssl_sign..."的都需要openssl的, 这里有2个target Mupdf_openssl_sign, (不需要服务器) Mupdf_openssl_sign_svr(这个是需要服务器的) Mupdf_openssl_sign这个traget我在自己的iphone上安装测试良好.

zl03jsj commented 5 years ago

刚才不小心关闭了... @wonderffee (:-

1036938520 commented 5 years ago

编译提示在build/release/namedump找不到library X11,在platform的x11文件夹又是存在文件的,请问怎么解决?

wonderffee commented 5 years ago

@1036938520 不知道你遇到的问题跟我是不是一样,我遇到的是找不到/usr/X11R6 ,但是我的Mac里/usr/X11是存在的,我把根目录里的makerule中的/usr/X11R6 替换成 /usr/X11解决问题了。如果你都没有,建议安装readme里面说明的xquartz

1036938520 commented 5 years ago

模拟器运行可以编译成功但无法运行成功; 真机运行无法编译也无法运行,以下是部分错误信息 "_X509_STORE_CTX_get_error", referenced from: _verify_callback in libmupdf.a(pdf-pkcs7.o) "_PKCS7_dataVerify", referenced from: _pk7_verify in libmupdf.a(pdf-pkcs7.o) "_ERR_error_string", referenced from: _pk7_verify in libmupdf.a(pdf-pkcs7.o) "_X509_STORE_CTX_cleanup", referenced from: _pk7_verify in libmupdf.a(pdf-pkcs7.o) "_X509_verify_cert_error_string", referenced from: _pk7_verify in libmupdf.a(pdf-pkcs7.o) "_BIO_callback_ctrl", referenced from: _bsegs_callback_ctrl in libmupdf.a(pdf-pkcs7.o) "_EVP_PKCS82PKEY", referenced from: _add_from_bag in libmupdf.a(pdf-pkcs7.o) "_PKCS8_PRIV_KEY_INFO_free", referenced from: _add_from_bag in libmupdf.a(pdf-pkcs7.o) "_SHA1_Init", referenced from: _z_openssl_pdf_sha1 in libmupdf.a(pdf-pkcs7.o) "_d2i_PKCS7_bio", referenced from: _verify_sig in libmupdf.a(pdf-pkcs7.o) "_X509_STORE_add_cert", referenced from: _verify_sig in libmupdf.a(pdf-pkcs7.o) "_PKCS7_dataInit", referenced from: _pdf_write_digest in libmupdf.a(pdf-pkcs7.o) _z_openssl_pdf_get_digest in libmupdf.a(pdf-pkcs7.o) _pk7_verify in libmupdf.a(pdf-pkcs7.o)

zl03jsj commented 4 years ago

安装readme里面说明的xqua

模拟器运行可以编译成功但无法运行成功; 真机运行无法编译也无法运行,以下是部分错误信息 "_X509_STORE_CTX_get_error", referenced from: _verify_callback in libmupdf.a(pdf-pkcs7.o) "_PKCS7_dataVerify", referenced from: _pk7_verify in libmupdf.a(pdf-pkcs7.o) "_ERR_error_string", referenced from: _pk7_verify in libmupdf.a(pdf-pkcs7.o) "_X509_STORE_CTX_cleanup", referenced from: _pk7_verify in libmupdf.a(pdf-pkcs7.o) "_X509_verify_cert_error_string", referenced from: _pk7_verify in libmupdf.a(pdf-pkcs7.o) "_BIO_callback_ctrl", referenced from: _bsegs_callback_ctrl in libmupdf.a(pdf-pkcs7.o) "_EVP_PKCS82PKEY", referenced from: _add_from_bag in libmupdf.a(pdf-pkcs7.o) "_PKCS8_PRIV_KEY_INFO_free", referenced from: _add_from_bag in libmupdf.a(pdf-pkcs7.o) "_SHA1_Init", referenced from: _z_openssl_pdf_sha1 in libmupdf.a(pdf-pkcs7.o) "_d2i_PKCS7_bio", referenced from: _verify_sig in libmupdf.a(pdf-pkcs7.o) "_X509_STORE_add_cert", referenced from: _verify_sig in libmupdf.a(pdf-pkcs7.o) "_PKCS7_dataInit", referenced from: _pdf_write_digest in libmupdf.a(pdf-pkcs7.o) _z_openssl_pdf_get_digest in libmupdf.a(pdf-pkcs7.o) _pk7_verify in libmupdf.a(pdf-pkcs7.o) 符号找不到, 是不是没有连接openssl的一些相关库.

zl03jsj commented 4 years ago

@1036938520 你这个问题在根目录用 git submodule update --init --recursive 就可以解决了,#3 里面早就说过了 @zl03jsj 建议在ReadMe里加上git clone --recursive https://github.com/zl03jsj/mupdf.git 避免这种小白问题 好的.

CrazyZhangSanFeng commented 3 years ago

大佬能不能基于mupdf1.17搞个最新的demo

zl03jsj commented 3 years ago

大佬能不能基于mupdf1.17搞个最新的demo

@CrazyZhangSanFeng 暂时没时间啊...工作太忙了.