cmake 使用本地安装的openssl安装最新的qpdf

gcmastyq  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(104)

我试图安装lastes qpdf(https://github.com/qpdf/qpdf/releases/tag/v11.5.0),我的本地编译openssl在非标准位置。
如何指定本地安装的openssl的路径?
我查看了它的libqpdf/CMakeLists.txt,并得出以下结论:

cmake -DREQUIRE_CRYPTO_OPENSSL=1 -DOPENSSL_H_PATH=/opt/openssl3/include -DOPENSSL_LIB_PATH=/opt/openssl3/lib64 -S . -B build

cmake --build build -- -k

但它失败了很多行
../libqpdf/libqpdf.so.29.5.0:对“EVP_CIPHER_CTX_set_key_length”的未定义引用
所以看起来它根本没有使用我编译的openssl。
那么如何在这个qpdf中指定我本地安装的openssl的路径呢?

pbgvytdp

pbgvytdp1#

原来这是一个通用的cmake问题。这是因为cmake使用pkg-config来检查额外的库位置,不管我们用-D输入的变量。
因此,即使OP中的cmake行本身是正确的,它也永远不会自己工作。唯一的解决方案是在运行cmake之前指定**$PKG_CONFIG_PATH**:

export PKG_CONFIG_PATH=/opt/openssl3/lib/pkgconfig:$PKG_CONFIG_PATH

上面使用的路径/opt/openssl 3/lib/pkgconfig是由该文件夹包含.pc文件(如openssl. pc)这一事实决定的。
此外,ccmake还帮助找出cmake的所有可用变量。

相关问题