我试图安装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的路径呢?
1条答案
按热度按时间pbgvytdp1#
原来这是一个通用的cmake问题。这是因为cmake使用pkg-config来检查额外的库位置,不管我们用-D输入的变量。
因此,即使OP中的cmake行本身是正确的,它也永远不会自己工作。唯一的解决方案是在运行cmake之前指定**$PKG_CONFIG_PATH**:
上面使用的路径/opt/openssl 3/lib/pkgconfig是由该文件夹包含.pc文件(如openssl. pc)这一事实决定的。
此外,ccmake还帮助找出cmake的所有可用变量。