在AIX上使用xlC编译:如何指定libssl库的特定版本链接?
在AIX上使用xlC链接特定版本的libssl
我在AIX开发机器上使用xlC编译器将C++应用程序与libssl(及libcrypto)进行动态链接。开发机安装的libssl版本为1.1,但目标系统是1.0.2版本,导致应用程序在开发系统运行正常,却无法在目标系统启动,报错如下:
exec(): 0509-036 Cannot load program /path/to/app because of the following errors: 0509-150 Dependent module /usr/lib/libssl.a(libssl.so.1.1) could not be loaded. 0509-152 Member libssl.so.1.1 is not found in archive
需要说明的是,该应用程序并未使用libssl 1.1版本新增的符号,理论上可以在libssl.so.1.0.2环境下正常运行。
我调研发现AIX上的libssl.a归档文件可包含多个版本的库,我的开发机上的libssl.a正是如此:
$ ar tv /usr/lib/libssl.a rw-r--r-- 0/0 728674 Sep 22 08:09 2022 libssl.so rw-r--r-- 0/0 510766 Sep 22 08:09 2022 libssl.so.0.9.8 rw-r--r-- 0/0 728674 Sep 22 08:09 2022 libssl.so.1.0.0 rw-r--r-- 0/0 728674 Sep 22 08:09 2022 libssl.so.1.0.2 rwxr-xr-x 0/0 1030429 Sep 22 08:10 2022 libssl.so.1.1
开发机上理论可以使用libssl.so.1.0.2,但不确定xlC编译器默认如何选择链接的库版本,猜测它会选最新版本。
请问是否可以让xlC编译器将我的应用程序与特定版本的libssl进行链接?
内容的提问来源于stack exchange,提问作者Athazo
相关产品推荐
相关产品推荐

